示例:
enter a number:939577
repeated numbers: 7 9
#include <stdio.h>
#include <stdbool.h>
int main(void)
{
long n;
printf("enter the number:");
scanf("%ld", &n);
int a[10] = {0};
bool ck[10] = { false };
int digit;
while (n > 0) {
digit = n % 10;
if (ck[digit])
{
if (n > 0)
a[digit] = digit+1;//防止第0位原本就是0和真的数字0重复混淆,故而+1区别开//
else
;
}
else
ck[digit] = true;
n = n / 10;
}
int b[10] = { 100,100,100,100,100,100,100,100,100,100 };
//为了如2300下b[0]=0歧义,改成100区别开//
int j = 0;
for (int i = 0; i < 10; i++)
{
if (a[i] == i + 1)
{
b[j] = a[i] - 1;//哟个b[0]开头就记录,只需判断b的开头就知道有无重复数字//
j += 1;
}
else
;
}
if (b[0] == 100)
printf("没有重复");
else
{
printf("repeated digits:");
for (int k = 0; k < 10; k++)
{
if (b[k] == 100)
;
else
printf("%d ", b[k]);
}
}
return 0;
}