Online Compiler C

#include <stdio.h> int main() { int n; scanf("%d",&n); while(n<=0){ n%10==n/10%10; if (n%10==n/10%10) { printf("YES"); } else {printf("NO")}; } return 0; }
这段代码试图判断一个整数的个位和十位数字是否相等,但存在逻辑和语法问题。代码中有一个无限循环,并且条件判断的方式不正确。

- 循环条件 `while(n<=0)` 会导致当输入正数时循环根本不执行,而输入非正数时循环会无限执行,因为循环体内没有改变 `n` 的值。
- 表达式 `n%10==n/10%10;` 单独写在一行没有实际作用,它只是一个比较表达式,结果没有被使用。
- `else {printf("NO")};` 缺少分号,应该是 `printf("NO");`。

提示:
- 思考如何只判断一次个位和十位数字是否相等,而不是使用循环。循环在这里是不必要的。
- 注意检查代码中的分号是否完整,特别是 `printf` 语句后面。