C如何找到重复的数字

时间:2014-12-08 15:50:29

标签: 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("%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;
}

2 个答案:

答案 0 :(得分:1)

n /= 10;向上移动一级 - 在while循环中而不是在子if中。现在你有无限循环。

答案 1 :(得分:0)

除了i486的修正,还有一行

            b[j] = true;

必须移出if(b[j] ){…}块之后(之后);否则b[j]变为true