c编程实现:输入一个整数输出该整数中重复出现的数字,如果有多个重复出现的数字,按从小到大的顺序输出

c编程实现:输入一个整数输出该整数中重复出现的数字,如果有多个重复出现的数字,按从小到大的顺序输出如果没有重复出现数字,则输出提示信息No repeted numbers.

#include <stdio.h>
int main(void){
    char a[11],i,j,k,t;
    printf("Input an integer...\n");
    scanf("%s",a);
    for(t=0,i='0';i<='9';i++){
        for(k=j=0;a[j];j++)
            if(a[j]==i)
                k++;
        if(k>1){
            printf("%2c",i);
            t++;
        }
    }
    printf("\n");
    if(!t)
        printf("No repeted numbers.\n");
    return 0;
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2017-02-19
#include <stdio.h>
int main()
{
    int num,digit[10],i,sign=0;
    for(i=0;i<10;i++) digit[i]=0;
    printf("please input a integer:");
    scanf("%d",&num);
    do    
    {
        digit[num%10]++;
        num=num/10;
    }while(num>0);
    for(i=0;i<10;i++)
    {    if(digit[i]>1) {
           printf("%d\n",i);
           sign=1;
           }
     }
     if(sign==0) printf("No repeted numbers.\n");
     return 0;  
}

本回答被网友采纳
第2个回答  2019-02-24
改进了一下上面的代码,可以判断是否是非法输入了
#include <stdio.h>

int main(void){
    char a[11],i,j,k,t,q;
    printf("Input an integer:\n");
    scanf("%s",a);
for(i=0,q=1;a[i]!='\0';i++){
if(a[i]>='0'&&a[i]<='9')
continue;
else
q=0;
}
if(q){
for(t=0,i='0';i<='9';i++){
for(k=j=0;a[j];j++)
if(a[j]==i)
k++;
if(k>1){
printf("%2c",i);
t++;
}
}
printf("\n");
}else
printf("Invalid input");
    if(!t)
        printf("No repeted numbers.\n");
    return 0;
}

相似回答