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; } n=n/10; printf("NO"); }; return 0; }
这段代码的功能是判断一个整数中是否存在相邻的两位数字相等。它从个位开始,每次比较当前个位和十位(即n%10和n/10%10),如果相等就输出YES并结束,否则去掉个位继续检查,直到数字小于10为止。如果循环结束都没有找到,会输出NO。

- 你的代码中,printf("NO")放在了循环内部,这会导致每次检查不相等时都输出一次NO,而不是在循环结束后统一输出。应该只在所有位都检查完且没有找到相等相邻数字时才输出NO。
- 循环条件while(n>=10)是正确的,但注意当n变成一位数时循环结束,此时应该输出NO,但你的代码在循环内每次不匹配时都输出NO,逻辑不对。