统计输入的每个值出现了多少次
#include<iostream>
int main() {
int currVal = 0, val = 0;
if (std::cin >> currVal) {//保证有数能被读取,读取第一个数,写入currVal,
int cnt = 1;//现在读取的数字是1个
while (std::cin >> val) {//此循环结构用于读取剩余的数
if (val == currVal)
++cnt;//如果与上一个数相同,则计数cnt加一
else {//否则,打印上一个值连续出现了多少次
std::cout << currVal << " occurs " << cnt << " times " << std::endl;
currVal = val;//更新currVal为新数
cnt = 1;//重置计数器
}
}//当读取到最后一个数,再执行while结构会跳出循环,需要有下面的语句来收尾
std::cout << currVal << " occurs " << cnt << " times " << std::endl;//打印最后一个值连续出现次数
}
return 0;
}
结果示例

参考文献:C++ primer 中文版 1.4.4
注:输入数字串时,需要用文件结束符来结束输入,windows是crtl+Z,再enter,详见本书P14.
该博客介绍了一个C++程序,用于统计输入的一串数值中每个值出现的频率。程序通过读取标准输入,比较当前值与前一个值,记录相同值的连续出现次数。当遇到不同值时,输出前一个值及其频率,并更新当前值。输入结束时,程序会输出最后一个值的频率。示例展示了如何使用Ctrl+Z(Windows)作为文件结束符来终止输入。

2994

被折叠的 条评论
为什么被折叠?



