如何找到重复的数字并将其导出,
输入您的电话号码: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;
}
答案 0 :(得分:1)
将n /= 10;
向上移动一级 - 在while
循环中而不是在子if
中。现在你有无限循环。
答案 1 :(得分:0)
除了i486的修正,还有一行
b[j] = true;
必须移出if(b[j] ){…}
块之后(之后);否则b[j]
变为true
。