Online Compiler C

#include <stdio.h> int main() { int a; scanf("%d", &a); int n = a % 10; while (a != 0) { if (n / 2 == 0) a = a / 10; else printf("NO") return 0; } printf("YES"); return 0; }
这段代码试图判断一个整数的所有数字是否都是偶数,但存在逻辑错误和语法错误。

- 变量 `n` 只被赋值为个位数字,但在循环中没有更新,导致每次比较的都是同一个数字。
- `if (n / 2 == 0)` 这个条件判断的是 `n` 除以2是否等于0,这只有在 `n` 为0或1时才成立,而不是判断偶数。应该使用取模运算 `n % 2 == 0` 来判断偶数。
- `else` 分支后面缺少分号,`printf("NO") return 0;` 应该写成 `printf("NO"); return 0;`。

- 循环中需要每次取当前个位数字并判断,然后去掉最后一位,但你的代码没有更新 `n` 的值,也没有正确去掉数字。