C如何找到重复的数字

C如何找到重复的数字,c,C,如何找到重复的数字并将其导出 输入您的号码:226644 重复数字:2 6 4 我试图解决这个程序,但我失败了。我已经张贴了我的编码,谢谢你的帮助 #include<stdio.h> #include<stdbool.h> int main(){ int i, j, n ; int a[10], m = 10; bool b[10] = {false}; printf("Enter your digit:"); scanf("%

如何找到重复的数字并将其导出

输入您的号码:226644 重复数字:2 6 4

我试图解决这个程序,但我失败了。我已经张贴了我的编码,谢谢你的帮助

#include<stdio.h>
#include<stdbool.h>
int main(){
    int  i, j, n ;
    int  a[10], m = 10;
    bool b[10] = {false};
    printf("Enter your digit:");
    scanf("%d", &n);

    while(n > 0){
        j = n % 10;
        if(b[j] ){
            printf("The repeated digit is:");
            if( m != j){
                m = j;
                printf("%3d", m);
            }
            b[j] = true;
            n /= 10;
        }
    }   

    if(m == 10){
        printf("There is no repeated digit!");
    }

    return 0;
}
#包括
#包括
int main(){
inti,j,n;
int a[10],m=10;
bool b[10]={false};
printf(“输入您的数字:”);
scanf(“%d”和“&n”);
而(n>0){
j=n%10;
if(b[j]){
printf(“重复的数字是:”);
如果(m!=j){
m=j;
printf(“%3d”,m);
}
b[j]=真;
n/=10;
}
}   
如果(m==10){
printf(“没有重复的数字!”);
}
返回0;
}

移动
n/=10向上一级-在
中,而不是在
循环中,如果
,则不在子
中。现在您有了无限循环。

除了i486的校正,还有行

            b[j] = true;

必须从
if(b[j]){…}
块中移出(之后);否则,任何
b[j]
都不会变成
true

请解释您想要实现的目标和出现的问题<代码>布尔b[10]={false}将仅初始化第0个元素。剩下的就不会了。未定义的行为时间。你想写一些关于预期行为、测试用例……的内容吗?你的标题错了-你在寻找重复的数字,而不是数字!我需要一些时间来理解这个错误的问题。我正在寻找被删除的数字,对不起