C++:程序在遇到非数字输入时结束输入
主要知识点:std::cin>>input在获取输入时,若出现类型与定义不匹配,将直接返回0。
题目:编写一个程序,最多将10个donation值读入到一个double数组中(如果您愿意,也可使用模板类array)。程序遇到非数字输入时将结束输入,并报告这些数字的平均值以及数组中有多少个数字大于平均值。
下面直接看代码:
#include <iostream>
#include <array>
const int COUNT = 10;
using namespace std;
int main()
{
array<double, 10> donation;
double input = 0;
int count = 0;
double average = 0, sum = 0;
int bigger = 0;
cout << "Enter the double numerial: ";
while (cin >> input && count < 10) //cin将不断读取浮点型数据,直到遇到第一个不属于浮点型数据的字符
{
donation[count++] = input;
cout << "No." << count << " Data input to Array." << endl;
cout << "Enter the double numerial: ";
}
for (int i = 0; i < count; i++)
sum += donation[i];
average = sum / count;
for (int i = 0; i < count; i++)
{
if (donation[i] > average)
bigger++;
}
cout << "average:" << average << endl;
cout << "bigger:" << bigger << endl;
return 0;
}