所以我在春天为我的编程课做准备,课堂笔记要求进行自我评估。我在大约3分钟的时间内写了这个程序,但是我不确定为什么它显示所有负数都是平的。有什么想法吗?
#include <iostream>
using namespace std;
int main()
{
int x,y;
cout << "Enter a number for reference" << endl;
cin >> x;
cout << endl << "The Number you entered was: " << x << endl;
y = x%2;
if (x<0 && x!=0) {
cout << endl <<"The Number you entered is negative" << endl;
}
else if(x==0) {
cout << endl << "The number is neither negative or positive" << endl;
}
else {
cout << endl << "The Number you entered is Positive" << endl;
}
if (y>0 /*&& x!=0*/) {
cout << "The Number you entered is odd" << endl;
}
else if(x==0) {
cout << "The number you entered is neither even or odd" << endl;
}
else {
cout << "The Number you entered is even" << endl;
}
system("PAUSE");
return 0;
}
答案 0 :(得分:2)
#include <iostream>
bool isEven(int n) {
if (n % 2 == 0)
return true;
else
return false;
}
int main() {
int myNumber = 0;
std::cout << "Enter number: ";
std::cin >> myNumber;
if (isEven(myNumber))
std::cout << myNumber << " is even." << std::endl;
else
std::cout << myNumber << " is odd." << std::endl;
return 0;
}
首先,数字的符号与奇数或偶数无关。其次,零是偶数(0是2的整数倍; 0×2)。上面的代码要求输入整数,函数isEven(n)然后返回true或false,以便在除以2时是否有余数。
答案 1 :(得分:1)
%
操作(程序中y
)的可能结果是:
因此,如果y
为零,您需要检查x
以确定“偶数”。或neither odd nor even
。
但是在您应该检查y
为零的情况下的代码中,您只检查x
的值。
效果是,对于每个否定的x
,(产生y == 0
或y < 0
),最后的else
语句将会执行。
答案 2 :(得分:1)
所有整数都是偶数或奇数,应该没有“你输入的数字既不均匀也不奇怪”!
你可以这样做:
if ( y == 0 )
{
cout << "The Number you entered is even" << endl;
}
else
{
cout << "The Number you entered is odd" << endl;
}
这是有效的,因为甚至的定义等于0 mod 2 ,这正是做% 2
然后检查== 0
所做的事情。< / p>