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:
/************************************************************
#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ả:
1 2 3 4 5 6 7 8 9 |
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 |
Leave a Reply