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; }
这段代码的功能是:读入一个整数,然后检查这个数中是否存在相邻的两位数字相等。如果存在,就输出"YES"并结束程序;如果遍历完所有相邻位都没有找到相等的情况,就输出"NO"。

不过代码中存在一个逻辑问题:在循环内部,每次检查完一位后,无论是否找到相等数字,都会在循环末尾输出"NO",这会导致错误的结果。

- 提示1:注意"printf("NO");"的位置。它被放在了while循环内部,这意味着每次循环迭代都会输出一次"NO",而不是在所有检查结束后才输出一次。
- 提示2:思考一下,应该在什么时候输出"NO"?是每次检查一位后都输出,还是所有相邻位都检查完、确认没有相等的情况后再输出?