Có n số phần tử được lưu trữ trong một mảng và chương trình này tính giá trị trung bình của các số đó. Sử dụng các phương pháp khác nhau.
Đầu vào - 1 2 3 4 5 6 7
Đầu ra - 4
Giải thích - Tổng các phần tử của mảng 1 + 2 + 3 + 4 + 5 + 6 + 7 =28
Không có phần tử nào trong mảng =7
Trung bình =28/7 =4
Có hai phương pháp
Phương pháp 1 −Iterative
Trong phương pháp này, chúng ta sẽ tìm tổng và chia tổng cho tổng số phần tử.
Cho trước mảng arr [] và kích thước của mảng n
Đầu vào - 1 2 3 4 5 6 7
Đầu ra - 4
Giải thích - Tổng các phần tử của mảng 1 + 2 + 3 + 4 + 5 + 6 + 7 =28
Không có phần tử nào trong mảng =7
Trung bình =28/7 =4
Ví dụ
#include<iostream> using namespace std; int main() { int arr[] = { 1, 2, 3, 4, 5, 6, 7 }; int n=7; int sum = 0; for (int i=0; i<n; i++) { sum += arr[i]; } float average = sum/n; cout << average; return 0; }
Phương pháp 2 - Đệ quy
Ý tưởng là chuyển chỉ mục của phần tử như một tham số bổ sung và tính tổng một cách đệ quy. Sau khi tính tổng, hãy chia tổng cho n.
Cho trước mảng arr [], kích thước của mảng n và chỉ số ban đầu i
Đầu vào - 1 2 3 4 5
Đầu ra - 3
Giải thích - Tổng các phần tử của mảng 1 + 2 + 3 + 4 + 5 =15
Không có phần tử nào trong mảng =5
Trung bình =15/5 =3
Ví dụ
#include <iostream> using namespace std; int avg(int arr[], int i, int n) { if (i == n-1) { return arr[i]; } if (i == 0) { return ((arr[i] + avg(arr, i+1, n))/n); } return (arr[i] + avg(arr, i+1, n)); } int main() { int arr[] = {1, 2, 3, 4, 5}; int n = 5; cout << avg(arr,0, n) << endl; return 0; }