Online Compiler C

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

- 第7行的 `a = a / 10 for (int i = a / 10; ...)` 缺少分号,并且 `for` 循环的写法不正确,导致编译错误。`for` 循环应该独立成一条语句,不能直接跟在赋值后面。
- 循环内部的逻辑混乱:`for` 循环的条件 `n == i % 10` 和 `else` 语句的搭配不符合C语言语法,`else` 不能直接跟在 `for` 后面。你需要重新思考如何逐位比较相邻数字。