在线编译器 C

#include <stdio.h> int main() { int x, digit1, digit2; scanf("%d", &x); 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; }
这段代码的功能是:读入一个整数,然后检查它的每一位数字是否都是偶数。如果所有位都是偶数,输出"YES";如果某一位是奇数,立即输出"NO"并结束程序。

- 你的代码逻辑基本正确,但有一个小问题:当输入的数字是0时,while循环条件`x>=1`不成立,会直接输出"YES"。但0本身是偶数,所以输出"YES"是正确的。不过,如果输入的是负数,循环也不会执行,会直接输出"YES",但负数的各位数字判断可能不符合预期。你可以考虑如何处理负数的情况。

- 另外,变量名`digit2`容易让人误解,它实际上存储的是`digit1 % 2`的结果,即奇偶性。你可以考虑用更清晰的变量名,比如`is_odd`,来让代码更容易理解。