我有一个包含两个元素数组的数组。现在我想将所有以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