#include <iostream>
using namespace std;
int main(){
int odd=0, even=0, value;
cout<<"Enter Numbers\n";
cout<<"Enter 0 to End\n";
do{
cin>>value;
if (value % 2==0)
even++;
else
odd++;
}
while (value !=0);
cout<<"The number of odd numbers is: "<<odd<<endl;
cout<<"The number of even numbers is: "<<even;
return 0;
}
出了点问题,我需要帮助,当我结束程序时,偶数总是 +1。
最佳答案
问题是,当您输入 0 结束循环时,它会在退出循环之前将其计为偶数...
改为一输入0就中断,使用无限循环
for (;;)
{
cin>>value;
if (!value) break; // stop now
if (value % 2==0)
even++;
else
odd++;
}
如评论中所述,另一种方法是使用条件 while
循环,如果输入失败,该循环会短路并测试值是否为零。在这种情况下,您不需要在循环中测试零:
while ((cin >> value) && value) { ... }
关于c++ - 当我输入 3 个偶数时,它显示我输入 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52817605/