C++入门基础篇学习手记: 统计在输入中每个值连续出现的次数

来源:互联网 发布:网络音乐黑名单 百度云 编辑:程序博客网 时间:2024/05/21 22:47

问题:编写C++程序,实现功能:统计输入数据中每个数值连续出现的次数。


功能实现的C++源程序代码:

#include "iostream"using namespace std;int main(){// currVal 为当前统计的数; inVal为将要输入的新值int currVal = 0, inVal = 0;// 读取第一个数,并确保确实有数据可以处理if (cin >> currVal){int cnt = 1;            // 初始化正在统计的当前值的个数while (cin >> inVal)// 继续读取数据{if (inVal == currVal)   // 判断输入数字是否与上一个数字相同++cnt;// 相同则统计值加 1else{cout << currVal << " occurs " <<cnt << " times." << endl;  // 不同则输出当前值的个数currVal = inVal;     // 并将新出现的数值作为统计新值cnt = 1;             // 统计值还原为 1}}cout << currVal << " occurs " << cnt << " times." << endl;}return 0;}


例如,我们输入数据: 12 12 12 12 55 55 3 66 66,输入结束后,按回车键输出结果为:

12 occurs 4 times.

55 occurs 2 times.

3 occurs 1 times.

66 occurs 2 times.

Tips: 要得到上述结果,一定要输入“文件结束符”。


思考1: 如果输入时没有输入“文件结束符”(数据输入完成后直接敲击Enter键或Return键),输出结果是怎样?

按照上面给出的例子,我们在输入结束后输入“文件结束符”,得到的结构如下:


上面显示的结果是我们预期的。

但是如果我们不输入“文件结束符”,得到的结果却是这样的:


从程序运行结果可以看出,没有输入“文件结束符”时敲击Enter键,程序并没有完成对所有的输入数据的统计和打印工作。这时候程序仍然处于等待输入的状态。如果我们继续输入,直到我们输入“文件结束符”,程序才算真正执行完,如下图:



思考2:如果输入数据时输入同一个数值,输出结果是怎样?如果输入的数据所有数字都不相同,结果又是怎样?

如果输入数值全部相同:


其运行结果是我们预期想要得到的。如果输入数值全不相同:


运行结果也是我们预期要得到的。


思考3:如果同一数值在不同的位置出现重复,输出的结果是怎样?


程序的功能实现了统计某一数值连续出现的次数。



1 0
原创粉丝点击