Онлайн компилятор C

#include <stdio.h> int main() { int n; scanf("%d",&n); int last=n%10; int last_sec=(n/10)%10; while(n>0){ if(last==last_sec){ printf("YES"); } n=n/10; } printf("NO"); return 0; }
这段代码试图判断一个整数中是否有相邻的相同数字,但逻辑有误。程序只检查了最后两位数字,然后进入循环,但循环内没有更新 `last` 和 `last_sec` 的值,导致判断不完整,并且无论是否找到都会输出 "NO"。

- 循环中每次 `n` 除以10,但 `last` 和 `last_sec` 没有更新,所以每次比较的都是最初的最后两位数字,而不是当前相邻的两位。
- 当找到相邻相同数字时,程序输出了 "YES",但循环不会停止,会继续执行,最终还是会输出 "NO"。应该在找到后立即结束程序或跳出循环。