-4
へのポインタの配列をソート
int arr1[] = { 3, 9, 6, 7 }, arr2[] = { 2, 5, 1 }, arr3[] = { 0 },
arr4[] = { 1, 6 }, arr5[] = { 4, 5, 6, 2, 1 };
int* pointersArray[5] = { &arr1, &arr2, &arr3, &arr4, &arr5 };
for (k = 0; k< 5; k++)
{
for (i = 0; i < **(pointersArray + k)+1; i++)
{
for (j = i + 1; j < **(pointersArray + k); ++j)
{
if ((*(*(pointersArray + k) + i)) > *(*(pointersArray + k) + j))
{
temp = *(*(pointersArray + k) + i);
*(*(pointersArray + k) + i) = *(*(pointersArray + k) + j);
*(*(pointersArray + k) + j) = temp;
}
}
printf("\n");
}
}
for (j = 0; j < 5; j++)
{
for (i = 0; i < **(pointersArray + j) + 1; i++)
{
printf("%d", *(*(pointersArray + j) + i));
}
printf(" ");
}
Iは、最初のセルをソートすることなく(各配列のサイズは、最初のセル+ 1)pointersArray
で各アレイをソートします。上に私の非作業コードは、それを修正するための任意のアイデアですか?整数
出力:
3697
251
0
16
256
予想される出力:
3679
215
0
16
41256
ているのですか? – flaviodesousa
はい - あなたはそれをデバッグすることができます。 –
最も内側のループを比較関数にリファクタリングします。 (あなたはおそらく、あなたがいろいろなアイテムを見つけたらループから脱出すべきです。) –