如何在C调试中确定多个数字是奇数还是偶数

如何在C调试中确定多个数字是奇数还是偶数,c,debugging,C,Debugging,我所有的if-else语句都有效,但当我尝试输入一个奇数,然后输入一个偶数时,我总是得到两个数都是偶数。 我已经尝试了所有的方法,但我完全不明白为什么我的代码在面对偶数而不是奇数时会失败,比如:21 22 #include <stdio.h> int main() { int x; int y; printf("Enter two numbers:\n"); scanf("%d %d",&x,&y); if (x,y % 2 == 0)

我所有的if-else语句都有效,但当我尝试输入一个奇数,然后输入一个偶数时,我总是得到两个数都是偶数。 我已经尝试了所有的方法,但我完全不明白为什么我的代码在面对偶数而不是奇数时会失败,比如:21 22

#include <stdio.h>

int main()

{

  int x;
  int y;
  printf("Enter two numbers:\n");
  scanf("%d %d",&x,&y);

  if (x,y % 2  == 0)
      printf("Both numbers are even.",x,y);

  else if (x % 2 == 0)
      printf("The first number is even.", x);

  else if (y % 2 == 0)
     printf("The second number is even.", y);

  else
      printf("Both numbers are odd.");


      return 0;
}

在C语言中,逗号运算符计算第一个参数并丢弃结果,然后计算第二个参数并返回结果

因此,如果x是21,y是22,那么表达式x,y将计算为22。x计算为21并丢弃,y计算为22并返回。当然,22%2==0是真的。因此,该条件将触发并打印出两个数字均为偶数

您的条件必须是x%2==0&&y%2==0

另外,如果你真的想打印出这些数字,你需要在那些printf调用的两个数字中都放上类似于%d或两个这样的数字。

即使你使用x,y%2==0,它也类似于y%2==0

使用ifx%2==0&&y%2==0 和printf内的%d

你认为x,y%2==0会做什么?它甚至不适用于允许像Python这样的元组的语言。