在线编译器 C

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

- 第7行和第8行缺少分号,导致编译错误。C语言中每条语句必须以分号结束。
- 第11行的if条件中使用了赋值运算符`=`而不是比较运算符`==`,这会把`last_sec`的值赋给`last`,而不是比较它们是否相等。
- 逻辑上,`last_sec`被定义为`last%10`,但`last`已经是最后一位数字,所以`last_sec`始终为0,这不符合你的意图。你需要思考如何获取当前数字的每一位,并比较相邻的两位。