当前位置:C++技术网 > 精选软件 > C++ Primer Plus 6th 6.11 编程练习题 第2题 循环读取double并统计数据

C++ Primer Plus 6th 6.11 编程练习题 第2题 循环读取double并统计数据

更新时间:2019-05-09 11:58:59浏览次数:1+次

题目:

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

答案:  书上无答案。

C++技术网辅导详解解答:
    参考代码:

#include <iostream>
using namespace std;
int main()
{
    double arr[10] = { 0 };
    int cnt = 0;
    double sum = 0;
    double ave = 0;
    int cnt_over_ave = 0;
    while (cnt < 10) 
    {
        double donation;
        cout << "请输入捐款数额:";
        if (!(cin >> donation))
        {
            cout << "输入不合法,程序即将结束!\n";
            break;
        }
        arr[cnt] = donation;
        sum += donation;
        ave = sum / (cnt+1);
        if (donation > ave)
            cnt_over_ave++;

        cout << "数组所有数字的平均值为:" << ave << ",大于平均值的数的个数为:" << cnt_over_ave<<endl;
        cnt++;
    }
    return 0;
}