在线编译器 C

#include <stdio.h> int main() { int x, a = 0, b = 0; scanf("%d", &x); while (x >= 10) { a = x % 10; b = (x % 100 - x % 10) / 10; if (a == b) { printf("YES"); return 0; } x = x / 10; } printf("NO"); } return 0; }
这段代码的功能是判断一个整数中是否存在任意两个相邻的数字相同。它从右向左依次检查每对相邻的数字,如果找到相同的一对就输出YES并结束,否则最终输出NO。

- 你的代码在main函数结束后多了一个多余的return 0;,它不在main函数内部,会导致编译错误。检查一下花括号的配对。
- 你的循环逻辑只检查了最低两位数字是否相等,但每次循环后x除以10,实际上会漏掉一些相邻对。思考一下:当x=121时,你的代码会检查哪几对数字?