参见https://blog.csdn.net/aero_sea/article/details/106438062,使用数组实现。
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
int main()
{
unsigned grades[11] = {}; // 11个分段,全部初始化为0
unsigned score;
while (cin >>score)
{
if (score <= 100)
++grades[score/10];
}
for (auto i : grades)
cout << i << ' ';
cout << endl;
}
与上个程序不同的是,没有把要统计的成绩写在程序里,需要在运行时输入。
为了避免运行一次就要录入一遍成绩,就建立了一个包含要统计成绩的txt文件,运行程序时,使用重定向把文件内容当作键盘输入,提高了程序的灵活性。
下面是scores.txt的内容:
42 65 95 100 39 67 95 76 88 76 83 92 76 93
如果程序编译后的可执行文件名是grade,那么在linux环境下,使用如下命令运行程序:
./grade < scores.txt
命令中的“<”表示把文件内容作为键盘输入给运行的程序。运行结果如下:
0 0 0 1 1 0 2 3 2 4 1
对运行结果的解释,参见文章开始的链接。