【问题标题】:How correctly sort an array?如何正确排序数组?
【发布时间】:2013-04-08 18:28:03
【问题描述】:

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

我哪里做错了?

【问题讨论】:

  • 你没有向我们展示你的完整代码。

标签: c sorting qsort


【解决方案1】:

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

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

双排序(双 *polsum,int 计数){ 诠释 p; qsort(polsum, count, sizeof(double), comp); 返回0; }

【讨论】:

  • 但是为什么呢?请问这个怎么修?我真的不知道
  • 你传入一个双精度数组,你应该知道有多少元素。您应该将元素的数量传递给您的排序函数。
猜你喜欢
  • 2021-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-18
相关资源
最近更新 更多