这段代码是C++ primer中if语句的例子,用于统计数字出现的个数。可是无法统计输入的最后一个数,比如输入1,1,2,2,2,3,3。它的输出就是1出现2次,2出现3次,可是对于3就没反应了。
#include <iostream>
#include <stdlib.h>
int main()
{
int currVal = 0,Val = 0;
if (std::cin >> currVal)
{
int cnt = 1;
while (std::cin >> Val)
{
if (Val == currVal)
{
++cnt;
}
else
{
std::cout << currVal << " occurs "
<< cnt << " times " << std::endl;
currVal = Val;
cnt = 1;
}
}
std::cout << currVal << " occurs "
<< cnt << " times " << std::endl;
}
system("pause");
return 0;
}
没有结束条件,输入3的时候程序还在
std::cin
这里等待下次输入。改成
while (std::cin >> Val && Val != 0)
,输入1,1,2,2,2,3,3,0,显示3的结果