#include<stdio.h>
int main()
{
int x,x1,t,a[10]={0}; //定义几个整型变量和一个10个元素的整型组并初始化为0.
scanf("%d",&x); //输入要检查的数据
x1=x; //x1被赋值用于后面语句显示
for(;x;x/=10) //这条语句要注意的是在循环体执行一次之后才会执行x/=10
{
t=x%10; //进行取余操作取出个位数
printf("a[%d]的值是%d\n",t,a[t]);//用于显示以取出的个位数为下标的元素的值
if(a[t]) //这个值只能是1或者0,用于判断所取出的个位数在之前是否出现过
{
printf("%d中%d重复了\n",x1,t);//为1时执行的语句
return 0;
}
else
a[t]=1; //为0时执行的语句
}
printf("%d中没有重复的数字\n",x1);
return 0;
}
/*这个程序关键语句是a[t]=1,在初次执行时,由于数组被初始化为0,选择语句会执行a[t]=1
这条语句,数组中以t为下标的元素被赋1,当后面有t的值与此t值相同时,if(a[t])则为真,执行
printf("%d中%d重复了\n",x1,t);return 0;这两条语句。*/