2
我的任務是從< 0; 99>加載未知數量的整數,然後打印整數中的第二個數字,後面跟着第二個數字出現的數字的第一個數字。例如:這段代碼中導致段錯誤的原因是什麼?
對於數字:
1 2 5 2 25 27 93 4 93 93 58 51
我應該得到這樣的輸出:
0 | 12245
2 | 57
5 | 18
9 | 333
我認爲錯誤是這裏的某個地方:
digit_holder[number/10] = (int *) realloc(digit_holder[number/10],(realloc_count[(number/10)]*sizeof(int)));
digit_holder[number/10][realloc_count[number/10]-1] = number % 10;
全碼:
int main()
{
int i,j, number,realloc_count[10], *digit_holder[10];
for (i = 0; i<10;i++)
realloc_count[i] = 0;
while (scanf("%d",&number) > 0){
realloc_count[number/10]++;
digit_holder[number/10] = (int *) realloc(digit_holder[number/10],(realloc_count[(number/10)]*sizeof(int)));
digit_holder[number/10][realloc_count[number/10]-1] = number % 10;
}
for (i=0;i<10;i++){
printf("%d | ",i);
for (j = 0; j < realloc_count[j]; j++)
printf("%d",digit_holder[i][j]);
putchar('\n');
}
return 0;
}