Cụ thể đề bài đầy đủ gồm 4 yêu cầu như sau:
Viết chương trình thực hiện các công việc:
- Nhập một mảng các số nguyên gồm n phân tử (0 < n < 100);
- Xuất mảng các số nguyên vừa nhập.
- Viết hàm tính giá trị trung bình các phần tử có giá trị âm trong mảng một chiều a có n phần tử. Hàm trả về giá trị trung bình của các phần tử có giá trị âm, ngược lại hàm trả về 0.
- Sắp xếp mảng theo thứ tự tăng dần.
Chương trình mẫu
- Khóa học lập trình C/C++ từ A-Z cho người mới – Giảm giá 40% hôm nay
- Khóa học Java cơ bản dành cho người mới bắt đầu- Giảm 40% hôm nay
- Khóa học lập trình Android từ cơ bản đến thành thạo – Giảm ngay 40%
#include <iostream>
using namespace std;
//Hàm nhập mảng
void nhap(int &n, int a[]){
for(int i=0;i<n;i++){
cout<<"a["<<i+1<<"]= ";cin>>a[i];
}
}
//Hàm xuất mảng
void xuat(int n, int a[]){
for(int i=0;i<n;i++){
cout<<a[i]<<" ";
}
}
//Hàm tính trung bình các số âm trong mảng
int tinhTB(int n, int a[]){
int sum=0, dem=0; //Khởi tạo biến đếm số lượng phần tử âm và biến tổng
for(int i=0;i<n;i++){
if(a[i]<0) {
sum+=a[i]; dem++; //Nếu phần tử thứ a[i] nhỏ hơn 0 thì cộng dồn giá trị vào biến sum và tăng biến đếm
}
}
if(dem==0) return 0; //Nếu không có phần tử âm nào thì trả về 0
return sum/dem; //Nếu có 1 hoặc nhiều phần tử âm thì lấy tổng các số âm chia cho số lượng số ra trung bình cộng các số
}
//Hàm sắp xếp mảng theo thứ tự tăng dần
void sapXep(int n, int a[]){
for(int i=0;i<n-1;i++){
for(int j=i+1;j<n;j++){
if(a[i] > a[j]){
int t = a[i];
a[i]= a[j];
a[j]=t;
}
}
}
xuat(n,a);
}
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<<"\n--------TINH TRUNG BINH SO AM----\n";
cout<<"Trung binh cac so am la: "<<tinhTB(n,a)<<"\n\n";
cout<<"\n--------MANG SAP XEP TANG DAN----\n";
sapXep(n,a);
}
[Xem tất cả bài viết chủ đề C/C++ tại đây]