Online Compiler C

#include<stdio.h> int main(void) { int n; scanf("%d",&n); while(n>0) { int pre=n%10; n=n/10; int cur=n%10; if(pre==cur) { printf("YES"); return 0; } printf("NO"), return 0; } }
这段代码试图判断一个整数中是否有相邻的相同数字,但逻辑上有问题。

- 代码在循环中只检查了一次相邻数字对,然后无论结果如何都会立即输出并结束程序,没有检查所有相邻位。
- 循环条件 `n>0` 在每次除以10后更新,但循环体内部在第一次比较后就返回了,导致循环只执行一次或零次。
- 输出语句中 `printf("NO"),` 使用了逗号而不是分号,这是一个语法错误。

- 提示1:检查循环结构,确保程序能遍历所有相邻的数字对,而不是只检查第一对就结束。
- 提示2:注意输出语句的语法,逗号不能代替分号。