/*
[15.11.19] Bài tập [Hàm và dữ liệu mảng (array) trong C/C++ <Tiếp>]
Viết các hàm thực hiện thực hiện:
1. Nhập vào từ bàn phím dãy số thực bất kỳ có n số (0<n<1000)
2. In ra màn hình dãy số vừa nhập
3. Tính giá trị trung bình công của tất cả các số trong mảng
4. Đếm số phần tử >= 5.5
5. Sắp xếp dãy số theo chiều tăng dần, in dãy đã sắp xếp
*/
#include<iostream>
#include<stdio.h>
using namespace std;
// bien toan cuc
int n;
float a[1000];
// dinh nghia cac ham
void NhapMang();
void InMang();
float TBC();
int DemSoPhanTu();
void SapXep();
// ham chinh
int main(){
// goi ham nhap
NhapMang();
// goi ham In mang
InMang();
// goi ham Tinh gia tri trung binh cong
cout<<"\n + Gia tri TBC: "<<TBC();
// goi ham dem so phan tu >=5.5
cout<<"\n + So phan tu >=5.5: "<<DemSoPhanTu();
// goi ham sap xep day tang dan
cout<<"\n + In mang da sap xep:";
SapXep();
cout<<"\n - END - \n ";
}
/* **************************** */
// khai bao cac ham
// Nhap x, y, z, n
void NhapMang(){
// nhap so phan tu n
cout<<"\n + Nhap mang: ";
do{
cout<<"\n - So phan tu n =";
cin>>n;
if(n<1||n>1000)
cout<<"\n Nhap lai n! ";
}while(n<1||n>1000);
// nhap cac phan tu cua mang
cout<<"\n - Nhap phan tu mang: ";
for(int i=0; i<n;i++)
{
cout<<"\n a["<<i<<"]= ";
cin>>a[i];
}
}
// Ham in mang
void InMang(){
cout<<"\n + In mang: ";
for(int i=0;i<n;i++)
cout<<a[i]<<", ";
}
// Ham tinh gia tri trung binh cong
float TBC(){
float tbc=0, s=0;
for(int i=0;i<n;i++)
s=s+a[i];
tbc = s/n;
return tbc;
}
// Dem so >= 5.5
int DemSoPhanTu(){
int dem=0;
for(int i=0;i<n;i++)
if(a[i]>=5.5)
dem++;
return dem;
}
// Sap xep day tang dan
void SapXep(){
for(int i=0;i<n-1;i++)
for(int j=i+1;j<n;j++)
if(a[i]>a[j])
{
// doi cho 2 so
float t = a[i];
a[i] = a[j];
a[j] = t;
}
// in mang da sap xep
for(int i=0;i<n;i++)
cout<<a[i]<<", ";
}