Đây là một dạng bài tập rất cơ bản giúp cho việc luyện tập code lập trình C/C++.
Tính trung bình cộng các số trong mảng
Trong bài này chúng ta sẽ thực hiện viết hàm tính toán trung bình cộng trong mảng 1 chiều của:
- Toàn mảng: Tính trung bình cộng của tất cả các số có trong mảng
- Số âm: Chỉ tính trung bình cộng của các số âm trong mảng
- Số dương: Chỉ tính trung bình cộng của các số dương có trong mảng.
Đây là một bài toán đơn giản nên ý tưởng cũng rất đơn giản, giả sử ta có mảng A gồm n phần tử. Đối với tính trung bình cộng tất cả phần tử trong mảng ta chỉ việc tất cả lại với nhau rồi chia cho n sẽ ra kết quả trung bình cộng. Đối với trung bình cộng số dương ta sẽ cần thêm 1 biến đếm, với mỗi bước lặp ta sẽ kiểm tra A[i] nếu lớn hơn 0 thì ta cộng giá trị vào biến sum và tăng đếm lên 1, rồi cuối cùng chỉ cần lấy tổng các số chia cho đếm là ra kết quả trung bình. Với số âm ta làm tương tự nhưng đổi chiều dấu so sánh.
Chương trình mẫu
#include <iostream>
using namespace std;
void nhap(int &n, int a[]){
for(int i=0;i<n;i++){
cout<<"a["<<i+1<<"]= ";cin>>a[i];
}
}
void xuat(int n, int a[]){
for(int i=0;i<n;i++){
cout<<a[i]<<" ";
}
}
int tinhTBCongint (int n, int a[]){
int sum=0, dem=0;
for(int i=0;i<n;i++){
sum+=a[i]; dem++;
}
return sum/n;
}
int tinhTBCongDuong(int n, int a[]){
int sum=0, dem=0;
for(int i=0;i<n;i++){
if(a[i] > 0) {
sum+=a[i]; dem++;
}
}
if(dem==0) return 0;
return sum/dem;
}
int tinhTBCongAm(int n, int a[]){
int sum=0, dem=0;
for(int i=0;i<n;i++){
if(a[i]<0) {
sum+=a[i]; dem++;
}
}
if(dem==0) return 0;
return sum/dem;
}
int main(){
int n;
int a[100];
do{
cout<<"Nhap n: "; cin>>n;
}while(n <= 0 || n >=100);
nhap(n,a);
cout<<"\n--------XUAT MANG----\n";
xuat(n,a);
cout<<"Trung binh cong: "<<tinhTBCongint(n,a)<<"\n\n";
cout<<"Trung binh so duong: "<<tinhTBCongDuong(n,a)<<"\n\n";
cout<<"Trung binh so am: "<<tinhTBCongAm(n,a)<<"\n\n";
}
Bạn chạy thử chương trình xem kết quả nhé!
[Xem tất cả bài viết chủ đề C/C++ tại đây]