Online Compiler C

#include <stdio.h> int main() { int n; scanf("%d",&n); while(n>=10){ if (n%10==n/10%10) { printf("YES"); return 0; } else {printf("NO")}; }; return 0; }
这段代码试图判断一个整数中是否有相邻的两位数字相同。它从个位开始,每次比较个位和十位,如果相同就输出YES并结束,否则输出NO。但逻辑上有问题。

- 你的循环条件 `while(n>=10)` 只会在数字至少两位数时进入,但每次循环你没有改变 `n` 的值,所以如果第一次比较不相等,循环会无限执行,并且每次都会输出NO。
- 另外,`else {printf("NO")};` 这一行末尾少了一个分号,应该是 `printf("NO");`。