-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