我有一個包含兩個元素數組的數組。現在我想將所有以0結尾的值(例如arr[3][0]
,arr[1][0]
)按從低到高排序。根據其他數組排序數組
然後我想讓值爲1(例如arr[2][1]
,arr[1][1]
)也被排序,但不是按照它自己的順序排列,而是按照與第一個數組相同的順序排序。
這裏是我的嘗試:
int compareInts(const void* a, const void* b)
{
return (*(int*) a[0] - *(int*) b[0]);
}
int arr[4][2];
arr[0][0] = 50;
arr[0][1] = 0;
arr[1][0] = 40;
arr[1][1] = 1;
arr[2][0] = 50;
arr[2][1] = 2;
arr[3][0] = 85;
arr[3][1] = 3;
qsort(arr, 4, sizeof(int), compareInts);
我想有以下結果:
arr[0][0] = 40;
arr[0][1] = 1;
arr[1][0] = 50;
arr[1][1] = 0;
arr[2][0] = 50;
arr[2][1] = 2;
arr[3][0] = 85;
arr[3][1] = 3;
謝謝!!我只需要將這個:sizeof(int)'改爲'2 * sizeof(int)' – Datoxalas 2011-04-14 13:26:42