在线编译器 C

#include <stdio.h> int main() { int n; scanf("%d",&n); int save_n=n while(digit<=9){ n=save_n; int counter=0; while(n>0); int current_digit=n%10 if (digit=current_digit){ counter++; } n=n/10; } if (counter>=2); printf("yes\n"); else; printf("no\n"); return 0; } return 0; }
这段代码试图判断一个整数中是否存在某个数字出现了至少两次,但代码中有多个语法和逻辑错误。

- 第5行 `int save_n=n` 缺少分号,导致编译错误。
- 第8行 `while(digit<=9)` 中变量 `digit` 未定义,且循环逻辑不完整。
- 第10行 `while(n>0);` 后面多了一个分号,导致死循环。
- 第11行 `int current_digit=n%10` 缺少分号。
- 第12行 `if (digit=current_digit)` 使用了赋值 `=` 而不是比较 `==`,条件永远为真。
- 第17行 `if (counter>=2);` 和 `else;` 后面多了分号,导致 `if-else` 结构失效。

- 提示1:检查每一行语句末尾是否都正确添加了分号,特别是变量声明和赋值语句。
- 提示2:注意区分赋值运算符 `=` 和相等比较运算符 `==`,同时确保 `if` 和 `else` 后面不要有多余的分号。