C++ primer(第五版) 练习 3.25 个人code 和疑问

本文探讨了C++ Primer第五版中关于3.3.3节划分分数段的练习,原始代码使用下标运算符,而现在尝试使用迭代器进行改写。题目要求统计0到100分之间每个10分档的成绩数量。书中的输入和输出分别给出,作者分享了自己的迭代器实现方法,并表达了对代码简洁性和迭代器应用的理解。
摘要由CSDN通过智能技术生成


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];
}


疑问:用书上的代码很方便的就统计出来了,用迭代的方法,我写了一大堆代码实现的,如下答题部分的代码

        反而不如原来的简单方便,

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值