在线编译器 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并结束,否则去掉最后一位继续检查,直到数字小于10为止。

- 你的代码只检查了相邻的两位数字(个位和十位),但题目可能要求检查任意相邻两位,这个逻辑是正确的。不过要注意,当数字只有一位时,直接输出NO,这符合逻辑。
- 变量b的计算方式可以简化。你用了 (x % 100 - x % 10) / 10 来得到十位数,实际上可以直接用 (x / 10) % 10 得到十位数,这样更直观。