首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-08-17 
统计负数的个数,关于ctrl+ZC/C++ codefor(i0i100++i){cinvalueif(value0){++sum}}用上面的循环统

统计负数的个数,关于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;} 

热点排行