cin不接受C ++输入

时间:2020-09-14 09:08:46

标签: c++

我刚刚开始编程,我试图编写一个简单的程序来检查数字是否为偶数,如果是则打印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 

我在做什么错了?

2 个答案:

答案 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;
 }