如何正确排序数组?

时间:2013-04-08 18:28:03

标签: c sorting qsort

我有排序数组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/

我在哪里犯了错误?

1 个答案:

答案 0 :(得分:1)

传入sizeof(double)表示要排序的元素数。 sizeof(double)== 8

考虑将以下内容添加到排序函数中:

double sort(double *polsum, int count) {
    int p;
    qsort(polsum, count, sizeof(double), comp);
    return 0;
}