使用多个数字在C中返回奇数/偶数

时间:2012-11-13 13:25:14

标签: c if-statement

我正在尝试编写一个程序,它将取两个数字并根据它们的值,返回两者都是奇数,两者都是偶数,或者A是奇数而B是偶数等。

我设法让程序检查一个变量,但如果我添加第二个变量,我得到一个我不期望的输出,我似乎无法安排代码给出正确的输出。我猜这是if / else语句的安排问题。

#include <stdio.h>

int main()
{
    int numA, numB;
    printf("Please enter variables:");
    scanf("%d, %d", &numA, &numB);
    if (numA % 2) {
        printf("Variable A:%d is odd \n",numA);
    }
else{
    printf("Variable A:%d is even \n", numA);
}
if (numB % 2) {
    printf("Variable B:%d is odd \n",numB);
}
else{
    printf("Variable B:%d is even \n", numB);
}
return 0;
}

我得到的输出低于

Please enter variables:4 5
Variable A:4 is even 
Variable B:32767 is odd 

为什么变量B:32767不是5?

非常感谢你们的帮助。如果我可以解决这个问题,希望我能为自己弄清楚其余部分。

1 个答案:

答案 0 :(得分:7)

您的scanf格式希望数字用逗号分隔,

scanf("%d, %d", &numA, &numB);

但是您的输入不是,所以只有第一个数字被scanf转换而第二个数字未被初始化。

您应该始终检查scanf和朋友的返回值,以验证是否进行了正确的转化次数。