#include <iostream>
using namespace std;
int main()
{
int x - 0;
bool even = true;
while(cin >> x)
{
if(x%2 != 0)
{
even = false;
}
}
if(even = true)
{
cout << "all even";
}
else
{
cerr << "not all even";
return 1;
}
}
每当我运行这个程序时,无论我插入的值(用户通过在控制台中按CTRL + D结束输入),even的值都保持为true,因为结束输出始终是“all even”。
我很确定bool没有改变,因为它在while语句中,但是我不知道如何解决它,因为我需要把它留在那里检查我输入的每个数字是否是奇数。 / p>
有关如何解决此问题的任何建议吗?
谢谢!
答案 0 :(得分:3)
if(even = true)
应该是
if(even == true)
&#34;左边的const&#34;人们会认为你的错误可以通过这样做来阻止:
if(true = even)
这样编译器会警告你关于错误的赋值。
答案 1 :(得分:1)
我认为你应该改变这些界限:
int x - 0;
至int x = 0;
if(even = true)
至if(even == true)
或if(even)
可能cerr << "not all even";
到cout << "not all even";
但该行导致您的问题为if(even = true)
,您将 true
分配给even
变量,而不是比较它与true
。