C++ primer(第五版) 练习 3.25
题目:3.3.3节划分分数段的程序是使用下标运算符实现的,请利用迭代器改写该程序并实现完全相同的功能。
3.3.3节划分分数段的程序如下:
假设有一组成绩的集合,其中成绩的取值是从0到100。以10分为一个分数段,要求统计各个分数段各有多少个成绩。显然,从0到100
总共有101种可能的成绩取值,这些成绩分布在11个分数段上:每10个分数构成一个分数段,这样的分数段有10个,额外还有一个分数
段表示满分100分。这样第一个分数段将统计成绩在0到9之间的数量;第二个分数段将统计成绩在10-19之间的数量,以此类推。最后
一个分数段统计满分100分的数量。
书上给的输入如下:
42 65 95 100 39 67 95 76 88 76 83 92 76 93
输出:
0 0 0 1 1 0 2 3 2 4 1
书上的例代码为:
vector<unsigned> scores(11,0);
unsigned grade;
while(cin>>grade)
{
if(grade<=100)
++scores[grade/10];
}
疑问:用书上的代码很方便的就统计出来了,用迭代的方法,我写了一大堆代码实现的,如下答题部分的代码
反而不如原来的简单方便,