參見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
對運行結果的解釋,參見文章開始的鏈接。