我刚刚开始编程,我试图编写一个简单的程序来检查数字是否为偶数,如果是则打印YES,否则打印NO。
#include <iostream>
using namespace std;
int main()
{
int w;
int remainder;
cout << "Enter the number : ";
cin >> w ;
remainder = w % 4;
if(remainder==0)
cout << "\nYes " << endl;
else
cout << "\nNO " << endl;
return 0;
}
当我尝试运行该程序时,出现以下输出:
$g++ -o main *.cpp
$main
Enter the number :
Yes
我在做什么错了?
答案 0 :(得分:0)
那里有一个逻辑错误。
remainder = w% 2; // must be.
您报告的问题可能与您使用的proqram有关。我正在使用Visual Studio,但对我来说没有任何问题。但是您也可以使用括号写条件:
if(remainder==0) {
cout << "\nYes " << endl;
}
else {
cout << "\nNO " << endl;
}
并尝试一下。也许可以。 (为什么也许?您正在使用在线编译器。在这种情况下,我不能保证任何事情)
为什么%2
例如:“ 2%4”将回答2。这有时会给在线编译器造成问题。最合乎逻辑的事情是通过执行“%2”来获得简单的答案。 2%2 = 0,这使我们的答案更平滑。
1% 2 = 1,
2% 2 = 0,
3% 2 = 1
1表示:不为偶数。 0表示:偶数。
最好的方法是不要尝试修复在线编译器错误。因为如果您为损坏的编译器开发代码,那么使用体面的编译器会遇到麻烦。 我建议使用普通的非在线编译器。
解决睡眠功能问题并不一定意味着您已经解决了问题。开发大型程序时,此路径可能为您带来很多问题。
答案 1 :(得分:0)
尝试使用此。.
#include<iostream>
using namespace std;
int main()
{
int w;
cout<<"Enter the number : ";
cin>>w;
string s=(w%2==0)?"even number":"odd number";
cout<<w<<" is a "<<s;
return 0;
}