Онлайн компилятор C

#include <stdio.h> int main() { int x, digit1, digit2; scanf("%d", &x); if(x==0){ printf("YES\n"); } while(x>=1){ digit1 = x%10; digit2 = digit1 % 2; if(digit2 != 0){ printf("NO\n"); return 0; } x = x/10; } printf("YES\n"); return 0; }
这段代码的功能是判断一个整数是否所有数位都是偶数。它从个位开始逐位检查,如果发现某一位是奇数就输出NO并结束,否则最后输出YES。

- 代码对输入0的处理是正确的,因为0的所有数位(只有一位0)都是偶数,所以输出YES。但注意while循环的条件是x>=1,当x为0时不会进入循环,直接输出YES,这没问题。

- 你的digit2变量实际上存储的是digit1除以2的余数,而不是直接判断奇偶性。这里逻辑正确,但变量命名容易让人误解。更直接的方式是检查digit1 % 2是否等于0。