-3
只是试图寻找数字数组的中位数和我有以下几点:C中的简单中值函数?
double median(int* array, int length)
{
double median;
qsort(array, length, sizeof(int), cmpfunc);
if((length%2) == 0)
{
median = (array[(length/2)] + array[(length/2)-1)])/2;
}
else
{
median =(array[(length -1)/2]);
}
return median;
}
int main()
{
int array [] = {5, 3, 2, 7, 9};
printf("%d\n", median (array, sizeof(array)/sizeof(array[0])));
return 0;
}
我的平均回报为一个疯狂的数量巨大。有人知道为什么
在printf()中使用%f而不是%d,并查看给出的内容。 – AGreenman 2014-09-10 20:12:36
你知道中位数是多少? ATM,在“长度%2 == 0”中得到了错误的答案,而在另一种情况下,做了一个多余的“-1”。 – Deduplicator 2014-09-10 20:13:03
@JohnHascall为什么'lf'会更合适? – ouah 2014-09-10 20:16:42