读书人

统计负数的个数关于ctrl+Z解决方法

发布时间: 2012-08-17 02:08:34 作者: rapoo

统计负数的个数,关于ctrl+Z

C/C++ code
for(i=0;i<100;++i)    {        cin>>value;        if(value<0)        {            ++sum;        }    }

用上面的循环统计负数。当我输入十个数后按下CTRL+Z,循环终止,但是得到的是很奇怪的结果,请问为什么会这样?比如我输入8、-9、-8得到的结果是99.

[解决办法]
sun初值赋值了没? 判断结束后并没有把value清空,用scanf吧,清晰些,用cin不太清晰,又不知道你value什么类型。
[解决办法]
cin是流结构的..
[解决办法]
按strl+z的时候,流已经被设置为fail了。从而你使用for循环,但是cin这句不执行,value里还是未按ctrl+z之前的值。然后++那么多次
[解决办法]
参考:
C/C++ code
#include <iostream>using namespace std;int main(int argc, char** argv){    int value = 0;    int sum = 0;    while(true)    {        cin >> value;        if(value == 0) break;    // 用输入0作为结束        if(value < 0)        {            ++sum;        }        cin.sync();        cin.clear();    }    cout << sum << endl;    return 0;} 

读书人网 >C++

热点推荐