C++ primer 第五版编程练习第六章习题节选

6-2. 编写一个程序,最多将10个donation值读入到一个double数组中(如果您愿意,也可以使用模板类array)。程序遇到非数字输入时将结束输入,并报告这些数字的平均值以及数组中有多少个数字大于平均值。

主要头文件说明:

# iostream // I/O control

# cstdlib //contains exit(EXIT_FAILTURE)

#cctype // alternative choise to check whether the input is a number.

 

#include<iostream>
//#include<cctype>
#include<cstdlib>
using namespace std;

const int Arsize = 10;

int main()
{
    double donation[Arsize];
    double item;
    int index = 0;
    double sum = 0;
    cout << "Enter a number, if not, I will exit!" << endl;
    while (cin >> item)
    {
        if (index < 10)
        {
            donation[index] = item;
            sum += item;
            index++;
            //cout << "number is : " << item << endl;
        }
        else 
        {
            break;
        }
    }

    if (index == 0)
    {
        cout << "no data read ! " << endl;
        exit(EXIT_FAILURE);
    }
    else
    {
        double ave = (sum/index);
        cout << "Average = : " << ave << endl;
        int j = 0;
        for (int i = 0; i <= index; i++)
        {
            if (donation[i] > ave)
            {
                j++;
            }
        }
        cout << "There is " << j << " numbers is greater than average." << endl;
    }
    return 0;
}

 

posted @ 2018-10-21 19:29  Xwell  阅读(275)  评论(0编辑  收藏  举报