Bài toán: Tính tổng các giá trị lớn hơn 2 giá trị lân cận với nó trong mảng.
Input: mảng a có n phần tử
Xử lý: tìm các giá trị lớn hơn 2 giá trị lân cận
Gán sum=0
Duyệt mảng nếu a[i] >a[i-1] và a[i]>a[i+1]
Sum=sum+a[i]
Output: Tổng các giá trị lớn hơn 2 giá trị lân cận
Hàm tìm các giá trị lớn hơn 2 giá trị lân cận
double Tong(int a[],int n) { int i; double sum=0; for( i=1 ; i<n-1 ; i++ ) if(a[i]>a[i-1] && a[i]>a[i+1]) sum=sum+a[i]; return sum; }
Chương trình
#include<stdio.h> #include<conio.h> #include<math.h> #define MAX 100 void nhapmang(int a[], int &n); void xuatmang(int a[], int n); double Tong(int a[],int n); void main() { int a[MAX],n; nhapmang(a,n); printf("\nNoi dung cua mang\n"); xuatmang(a,n); double kq=Tong(a,n); printf("\ntong cac gia tri lon hon 2 gia tri lan can la: %8.2f",kq); printf("\nChuc cac ban hoc tot"); getch(); } void nhapmang(int a[], int &n) { do { printf("\nSo phan tu trong mang "); scanf("%d",&n); }while(n<=0 || n>100); for(int i=0 ; i<n ; i++ ) { printf("\nSo phan tu a[%d] la: ",i); scanf("%d",&a[i]); } } void xuatmang(int a[], int n) { for(int i=0 ; i<n ; i++ ) printf("%4d",a[i]); } double Tong(int a[],int n) { int i; double sum=0; for( i=1 ; i<n-1 ; i++ ) if(a[i]>a[i-1] && a[i]>a[i+1]) sum=sum+a[i]; return sum; }
Mình chia sẽ code này đê các bạn tham khảo các vấn đề tương tự. Tuy nhiên các bạn nên tự làm lại, đừng nên copy. Nếu gặp vấn đề gì khó khăn, hoặc thắc mắc gì, các bạn có thể đặt câu hỏi ở cuối bài. Mình sẽ giải đáp.
Chúc các bạn thành công!
Xem thêm: Tính tổng các giá trị có chữ số hàng chục là chữ số 5 trong mảng