在线编译器 C

#include <stdio.h> int main() { int a; scanf("%d", &a); int flag = 0; while (a > 0) { int last = a % 10; a = a / 10; if (n == 0) break; int pre = n % 10; if (last == pre) { flag = 1; break; } } if (flag == 1) printf("YES"); else printf("NO"); return 0; }
这段代码试图判断一个整数中是否有相邻的相同数字,但存在变量名错误。

代码中使用了未定义的变量 `n`,而应该使用 `a` 来获取前一位数字。`n` 没有被声明或赋值,会导致编译错误或未定义行为。

- 检查变量 `n` 的来源:代码中 `n` 没有定义,应该用当前剩余的 `a` 来获取前一位数字。
- 注意循环逻辑:每次循环中,`last` 是当前最后一位,但获取前一位时应该用更新后的 `a` 而不是未定义的 `n`。