您的位置:首页 > 编程语言 > C语言/C++

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

2016-12-14 16:03 399 查看
问题:编写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;				// 相同则统计值加 1
else
{
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:如果同一数值在不同的位置出现重复,输出的结果是怎样?



程序的功能实现了统计某一数值连续出现的次数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  if语句 C++ 字数统计
相关文章推荐