在线编译器 C

#include <stdio.h> int main() { int n; scanf("%d", &n); int save_n; for(int digit = 0; digit <= 9; digit++) { n=save_n; while(n>0) { int inspect; n%10=inspcet; int cymma=0 if (save_n == inspect) { cymma++; } n /= 10; } if (cymma > 1){ printf("%d ", digit); } } return 0; }
这段代码试图找出一个整数中重复出现的数字,但存在多个语法和逻辑错误。

- 变量 `save_n` 在使用前未初始化,导致 `n=save_n;` 会使用不确定的值。
- 赋值语句 `n%10=inspcet;` 语法错误,不能将值赋给表达式 `n%10`,且变量名 `inspcet` 拼写错误。
- 变量 `cymma` 声明时缺少分号,且拼写不一致(后面又用了 `cymma`)。
- 条件 `if (save_n == inspect)` 中 `inspect` 未定义,且逻辑错误:应该比较当前数字 `digit` 与某一位,而不是整个数。
- 循环逻辑混乱:外层循环遍历数字0-9,但内层循环每次重置 `n` 为 `save_n`,导致无限循环或错误计数。