请帮我看一段c++程序。。。。

来源:百度知道 编辑:UC知道 时间:2024/05/19 06:19:47
希望输入不定数量的几个数字,然后判断其中有几个数是负数。编译时候没有错误,但是运行时候与预期的结果不太一样。。。输入玩数字以后回车是换行了,没有继续剩余的操作也没有退出

#include "stdafx.h"
#include <iostream>
#include <conio.h>

int _tmain(int argc, _TCHAR* argv[])
{
int amount=0;
int value;
int i=0;
//read till end-of-file, calculating a running total of all values read
while(std::cin>>value){
if(value<=0){
amount+=i;
}
else{
amount;
}
}
if(amount>=2){
if(amount%2==0){
std::cout<<"There are "<<amount<<" negative numbers"<<std::endl;
}
else{
std::cout<<"There is "<<amount<<" negetive numbers"<<std::endl;
}
}
else{
std::cout<<"There is no negative number"<<std::endl;
}
getch();
return 0;
}
可是它根本没有执行后续部分啊,确切的说,它根本就没有进行判

哥们 我帮你搞定了~~~

while(std::cin>>value){
你的问题就在这一句上
你用了这句话 那你知道cin的返回值吗
只要你输入的是数字开头的东东
他就会一直while下去

结束他很容易 你输入数字回车输入数字回车
当你想结束输入时 你就随便敲如一个字母
如 a 或者 @等等
这时候 结果出来了~~~

你的程序有个一错误
amount+=i;
应该是amount+=1;

i是0啊 你每次去加也没有用啊。。。

用ctrl+D退出

ctrl+Z也可以。。
另外:你可以使用空工程,使用了系统产生的文件并不好,。。