Online Compiler C

#include <stdio.h> int main() { int a; scanf("%d", &a); while (a != 0) { int n = a % 10; a = a / 10; if (n > a % 10) { n = a % 10 } else { printf("NO"); return 0 }; printf("YES"); return 0; }
这段代码试图判断一个整数的各位数字是否从左到右严格递减,但存在逻辑和语法问题。

- 第9行和第14行缺少分号,导致编译错误。
- 循环逻辑有误:每次迭代只比较当前最低位和次低位,但循环结束后立即输出结果,没有检查所有位。
- 变量 `n` 的更新方式不对,导致比较逻辑混乱。

- 检查代码中所有语句是否以分号结尾,特别是第9行和第14行。
- 思考如何遍历所有数位,并在发现任何不满足递减的情况时立即输出"NO",只有全部检查通过后才输出"YES"。