我想要了解一些事情。我仍然是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;
}
答案 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;