Bai tap Ham _ mang 15.11.19


/*

 [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]<<", ";
}