【问题标题】:return odd/even number in C with multiple numbers在C中返回具有多个数字的奇数/偶数
【发布时间】:2012-11-13 13:25:14
【问题描述】:

我正在尝试编写一个程序,它将采用两个数字并根据它们的值返回两个都是奇数,两个都是偶数,或者 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?

非常感谢您一如既往的帮助。如果我能解决这个问题,希望我能自己解决剩下的问题。

【问题讨论】:

  • 在使用这些变量之前检查scanf的返回值。

标签: c if-statement


【解决方案1】:

您的scanf 格式要求数字以逗号分隔,

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

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

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

【讨论】:

  • 非常感谢。始终注意逗号。检查
猜你喜欢
  • 1970-01-01
  • 2013-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多