我正在尝试使用 qsort 对多维数组进行排序,但结果是胡说八道..
我的代码(摘录):
#include <stdio.h>
#include <stdlib.h>
int srovnejVelikost(const void *p1, const void *p2) {
const long int (*a)[5] = p1;
const long int (*b)[5] = p2;
return ((*a)[0] + (*a)[1] - (*b)[0] - (*b)[1]);
}
long int nadrze[200000][5];
[values added into the array here]
qsort (nadrze, 200000, sizeof(nadrze[0]), srovnejVelikost);
它应该根据 (nadrze[a][0] + nadrze[a][1] - nadrze[b][0] - nadrze[b][1])...的结果对 nadrze[] 进行排序。所有 5元素移动
谢谢你的帮助。这是最值得赞赏的。