Tính tổng các phần tử cực tiểu trong mảng các số nguyên

Yêu cầu:

– Viết hàm tính tổng các phần tử cực tiểu trong mảng các số nguyên (phần tử cực tiểu là phần tử nhỏ hơn các phần tử xung quanh nó ).

Ví dụ: 6 4 2 9 5 3 7 1 5 8   (2, 3, 1 là các phần tử cực tiểu)

Thuật toán:

– Dùng vòng lặp for hoặc while duyệt mảng

– Kiểm tra điều kiện phần tử cực tiểu: A[i-1] > A[i] và A[i] < A[i+1].

Code:

/************************************************************
* Author: VNCODING
* History 
* 2014/10/05 first create VNCODING
*************************************************************/
#include "stdio.h"
#include "conio.h"

#define LEN_MAX 100 // do dai toi da cua mang

int sum_of_min(int A[], int len);

void main()
{
    int arr[LEN_MAX];
    int n;
    int i;
    do 
    {
        printf("\nNhap kich thuoc mang: ");
        scanf("%d", &n);
    }
    while (n > LEN_MAX || n <= 0);

    for (i = 0; i < n; i++)
    {
        printf("\nA[%d] = ", i);
        scanf("%d", &arr[i]);
    }
    printf("\nTong cac phan tu min: %d", sum_of_min(arr, n));
    getch();
}

int sum_of_min(int A[], int len)
{
    int i;
    int sum = 0;
    for (i = 0; i <= len - 3; i++)
    if(A[i+1] < A[i] && A[i+1] < A[i+2])
    {
        sum += A[i+1];
    }
    return sum;
}

Kết quả:

Nhap kich thuoc mang: 7
A[0] = 4
A[1] = 2
A[2] = 3
A[3] = 1
A[4] = 9
A[5] = 0
A[6] = 7
Tong cac phan tu min: 3

Be the first to comment

Leave a Reply