Online Compiler C

#include<stdio.h> int main(void) { int n; scanf("%d",&n); while(n>0) { int pre=n%10; n=n/10; int cur=n%10; if(pre==cur) { printf("YES"); return 0; } printf("NO"); return 0; } }
这段代码的目的是判断一个整数中是否有相邻的相同数字。它从个位开始,每次取最后两位进行比较。

- 代码只比较了第一次取出的两位数字,没有继续循环检查剩余的数字。
- 循环中的 `return 0` 导致程序在第一次比较后就结束,无论结果如何。

- 思考一下:当 `pre` 和 `cur` 不相等时,应该继续检查下一位,而不是立即输出 "NO" 并结束。
- 另外,循环条件 `n>0` 在每次除以10后可能很快变成0,需要确保能正确遍历所有相邻位。