呃明明补充了说明的:这个程序的作用是数那些数字出现的次数。但是为什么编译出来的结果,最后那两个66没有被数进去?
因为你连续输入的都是66,所以程序还在等你输入值,如果你输入……66,66,67那么66就输出出来了,但是67又不能输出了
所以你的判断条件得改,比如改成
if (temp == value && temp != '\n')
{
time++;
}
这个代码表示你输入数字一样并且没有换行(也就是没有结束输入),这样既能全输出了
呃明明补充了说明的:这个程序的作用是数那些数字出现的次数。但是为什么编译出来的结果,最后那两个66没有被数进去?
第二个std::cout << value << " has appeared " << time << " times" << std::endl;永远用不到,因为一直在等待输入。。你再输入一个数字那个66就会蹦出来
能不能 直接 贴代码,说不定可以省时间给你运行调试一下
else {
里面 这句 是到不了,因为 temp 没有值,就一直等你输入 其他数字,比如,接下来输入 77 ,就可以 输出66的了,但是还是不会输出77的,建议增加
一个 特殊结束符,使得全部得以输出
}
因为while(cin>>temp)没有读到文件结束
如果使用文件输入就没有问题
在main()函数最前面加一句 freopen("data.in","r",stdin);
然后将你的输入数据放在文件data.in里面,,运行就会有完整的结果。
你输出的条件是前后数字不相等(value!=temp),而你最后两个66没有达到输出的条件,所以输不出66,如果再输入另外一个不是66 的数字就达到了输出的条件了