在我初始化整数的地方有用吗?

时间:2017-11-16 20:36:59

标签: c++ initialization int cin

我想要了解一些事情。我仍然是c ++的初学者,我刚刚创建了这个小程序,你输入一个值,它会告诉你它是偶数还是奇数。为此,我创建了一个名为“result”的整数,它取值,然后执行%2操作。

然而,我的第一个错误是我将int结果置于“cin>>值”之上,所以出于某种原因搞砸了程序,数字总是无论如何都是。然后当我把int结果放在“cin>> value”之下时,程序就像应该的那样工作。它为什么这样做?

任何帮助将不胜感激,谢谢。如果这是重复但我不知道要搜索什么,我道歉。

#include <iostream>
#include <string>
#include "Human.h"
#include <ctime>
using namespace std;



int main() {


    int value = 0; // where I input
    cin >> value;
    // if you put int result above cin program changes.
    int result = value % 2;

    if (result == 0) {
        cout << "Even number." << endl;
    }
    else {
        cout << "Odd number." << endl;
    }



    return 0;
}

3 个答案:

答案 0 :(得分:1)

您使用的任何编程语言的代码都是从上到下运行的。 您需要首先声明变量,给它一个值,然后检查是偶数还是奇数。

在设置cin的值后使用result = value%2;时,编译器使用value的原始初始化值(0)来计算result的值{} 0%2

这就是为什么在设置cin>>value;之前需要使用result = value%2;的原因。

答案 1 :(得分:1)

C ++逐行从上到下读取代码。所以你必须首先对你的变量进行int。如果你想阅读它,我做了一个更简单的程序版本:

#include <iostream>

using namespace std;

int main() {
int a;
cout << "a=";
cin >> a ;

if(a%2==0)
    {cout<<"a is even";}
else
    {cout<<"a is uneven";}
}

答案 2 :(得分:1)

当您将int result = value % 2;放在cin >> value;之前时,您的程序会在您通过输入将值放入int value之前计算结果。 因此,您的计划会计算int result = 0 % 2;