Online Compiler C

#include<stdio.h> int main(void) { int n; scanf("%d",&n); while(n>0); { int pre=n%10; int cur=n/10%10; if(pre==cur) printf("YES"); return 0; } printf("NO"); return 0; }
这段代码试图判断一个整数的最后两位数字是否相同,但存在逻辑和语法问题。

- 第6行的 `while(n>0);` 后面多了一个分号,导致循环体为空,程序会陷入死循环。
- 循环内部的代码只执行一次,且没有更新 `n` 的值,无法处理多位数字。
- 程序在循环内就返回了,导致循环外的 `printf("NO")` 永远不会执行。

- 检查 `while` 语句后面的分号,它会让循环无法进入预期的代码块。
- 思考如何让循环真正遍历数字的每一位,而不是只检查一次就结束。