1

我有这个排序数组的代码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/

我在哪里犯了错误?

4

1 回答 1

1

您传入 sizeof(double) 以获取要排序的元素数。大小(双)== 8

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

双排序(双 *polsum,int 计数){
    诠释 p;
    qsort(polsum, count, sizeof(double), comp);
    返回0;
}
于 2013-04-08T18:33:24.310 回答