|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
输入一个不超过9位数的无符号整数,判断该整数中是否存在重复的数字
#include<stdio.h>
int main(){
int i,num,n;
int count[10]={0};
printf("请输入一个正整数:");
scanf("%d", &num);
n=num;
do{
count[n%10]++;//统计数字n%10在整数n中出现的次数
n=n/10;
}while(n!=0);
for(i=0;i<10;i++)
if(count[i]>1)
break;
if(i<10)
printf("整数%d中存在重复的数字.\n", num);
else
printf("整数%d中没有重复的数字.\n", num);
return 0;
}
想问下这个count[n%10]++;数组中n%10在数组中是什么意思,数组不是一个一个的存储嘛?然后++是指数组向下一个推,比如count[0]里是1,count[1]里是2,就是从1指向2?
for(i=0;i<10;i++)
if(count[i]>1)
break;这里遍历的count[i]又是什么意思?count[1]里是2那也大于1啊
n%10的目的是依次分离个位,十位,百位等数位中的数字,然后每看到一个数字x,count(x)就增加1,比如个位是1,count(1)就自增1,十位还是1,count(1)就再自增1变为2,等等。所以只要出现重复的数字,数组count[10]中必有一个元素大于1,然后最后的for循环就是判断是否有元素大于1
|
|