我有排序数组polsum
的代码:
int comp (const void * a, const void * b){
double aa = *(double*)a, bb = *(double*)b;
if (aa < bb) return -1;
if (aa > bb) return 1;
return 0;
}
double sort(double *polsum){
int p;
qsort(polsum, sizeof(double),sizeof(double), comp);
return 0;
}
但输出是:
5,01/
80,86/
85,01/
85,01/
300,88/
600,88/
77888,88/
100400,00/
670,88/
80,86/
80,86/
我在哪里犯了错误?
答案 0 :(得分:1)
传入sizeof(double)表示要排序的元素数。 sizeof(double)== 8
考虑将以下内容添加到排序函数中:
double sort(double *polsum, int count) { int p; qsort(polsum, count, sizeof(double), comp); return 0; }