gpt4 book ai didi

java 中位数。当我有一个带有一对数字的数组时,我得到的中位数不正确

转载 作者:太空宇宙 更新时间:2023-11-04 13:09:28 26 4
gpt4 key购买 nike

 public static double calcMedian(int[] array) {
int n = array.length;
int middle = n / 2;
double median=0;
for (int i = 0; i < n; i++) {
if ((n % 2) == 1) {
median = array[middle];
} else if((n % 2) == 0){
median = (array[middle-1] + array[middle]) / 2;
}
}
return median;
}

当我有奇数个元素时,我得不到正确的中位数。例如,如果我的数组是 [1 3 6 7 10 12],则中位数应该是 6.5。我得到的是 6。我不明白为什么。提前致谢

最佳答案

因为您将 int 除以 int,结果也是 int 类型,并且结果的小数部分 (.5) 被截断。

要获得 double 结果,请在除法运算之前将被除数或除数转换为 double 值,如下所示:

median = (array[middle-1] + array[middle]) / ((double) 2);

median = ((double) (array[middle-1] + array[middle])) / 2;

关于 java 中位数。当我有一个带有一对数字的数组时,我得到的中位数不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34123319/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com