统计输入的每个值出现了多少次
#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.