我在介绍C++当然,和我有这个提示麻烦:代码进入无限循环,不知道为什么
“写一个循环,从标准输入读取正整数和终止时它会读取一个不是正数的整数,在循环终止后,会打印所有偶数整数读取的总和,读取的所有奇数整数的总和,读取的偶数整数的数量,以及计数读取的奇数整数,全部用一个空格分隔,声明任何需要的变量。“
我的解决方案如下:
int num = 0;
int evens = 0;
int odds = 0;
int evenSum = 0;
int oddSum = 0;
do {
cin >> num;
if (num % 2 == 0){
evens++;
evenSum += num;
}
else if (num > 0) {
odds++;
oddSum += num;
}
else {
num = -1;
}
}
while (num >= 0);
cout << evenSum << " " << oddSum << " " << evens << " " << odds;
我没有得到任何反馈,除了“故障:代码进入无限循环”,从autograder。我究竟做错了什么?
围绕此代码段构建测试框架,并通过开发环境随附的调试器运行它。无限循环通常很容易陷入并识别。 – user4581301
有一件事错了,不是无限循环,而是与赋值规范有所不同:“当它读取一个不正确的整数时终止”。该程序尝试处理负数,然后退出循环。 – user4581301
使用在线编译器提供的代码,它的工作原理 – xyious