Online Compiler C

#include <stdio.h> int main() { int a; scanf("%d", &a); while (a != 0) { int n = a % 10; if (n % 2 == 0) a = a / 10; else printf("NO");return 0; } printf("YES"); return 0; }
这段代码的功能是:读取一个整数,然后检查它的每一位数字是否都是偶数。如果所有位都是偶数,输出"YES";如果遇到奇数位,输出"NO"并立即结束程序。

- 代码中 `return 0;` 的位置需要注意:当遇到奇数数字时,`printf("NO");` 后面直接跟了 `return 0;`,这会导致程序在输出"NO"后立即结束,但此时循环中的 `a` 还没有被更新(`a = a / 10` 没有执行),所以逻辑上虽然能输出正确结果,但循环的流程控制不够清晰。建议思考如何让循环在遇到奇数时正常退出,而不是用 `return` 打断循环。

- 另外,如果输入的数字是0,循环条件 `a != 0` 一开始就不成立,会直接输出"YES",但0的各位数字都是0(偶数),所以结果正确。不过要留意,如果输入负数,取模运算的结果可能为负,导致判断出错,可以考虑先处理符号。