Online Compiler C

#include <stdio.h> int main() { int n; int num[10]={0}; scanf("%d",&n); while(n>0){ int d=n%10; n=n/10; if(num[d]==1){ printf("YES"); return 0; } num[d]=1; } printf("NO"); return 0; }
这段代码的功能是判断一个整数中是否有重复的数字。它通过数组记录每个数字是否出现过,如果遇到已经出现过的数字就输出YES并结束,否则最后输出NO。

- 代码假设输入的数字最多10位,但数组大小固定为10,如果输入的数字位数超过10,数组访问可能越界。考虑如何让程序适应任意长度的输入。
- 变量n在循环中被修改,导致循环结束后n的值变为0,如果需要保留原始输入值,可以先用另一个变量保存。