Онлайн компилятор C

#include <stdio.h> int main() { int a,ch[11];//tell me:ch[] need or not init??? and how to init it? scanf("%d",&a); while(a>=10) { if(ch[a%10]) { printf("YES"); return 0; } ch[a%10]=1; } printf("NO"); return 0; }
这段代码试图判断一个整数中是否有重复的数字,但存在几个问题。

- 数组 `ch` 没有被初始化,它的元素值是未定义的,所以 `if(ch[a%10])` 的判断结果不可预测。
- 循环条件 `while(a>=10)` 只处理了至少两位数的数字,但循环内部没有更新 `a` 的值,会导致死循环。

- 数组 `ch` 需要初始化为全0,表示所有数字都未出现过。可以用循环或 `={0}` 的方式初始化。
- 循环中需要更新 `a` 的值,比如 `a = a / 10`,否则循环无法结束。