void *next = *(void**)(bin[index] + sizeof(uint32_t)); // gcc extension
这是我的中位数代码,但是当我运行程序时它仍然保持为零。数组是:{3.0,15.0,7.0,27.0};
答案 0 :(得分:2)
在您提供的代码中,您似乎正在尝试找到平均值而不是中位数。我在下面提供了一些有助于找到平均值的代码。要找到你需要对数组进行排序的中位数,这有点复杂。
简短的回答是删除input = 0行。假设数据是一个公共变量,并且该sum是一个函数,它将该代码应该起作用的公共变量求和。
实现应该取决于上下文,但我建议使用一个静态函数,它将一个双精度数组作为单个参数。
public class Median{
public static void main(String[] args){
double numbers[] ={1.0, 2.0, 3.0};
System.out.println(median(numbers));
}
public static double median(double[]x){
double sum = 0;
for(int i=0;i<x.length;i++){
sum += x[i];
}
return sum/x.length;
}
}
答案 1 :(得分:1)
您总是乘以零(输入= 0)。所以它总是会返回零。
答案 2 :(得分:0)
尝试这样的事情:
public Double average(Double[] array){
Double sum = 0.0;
for(int index=0;index<array.length;index++){
sum+=array[index];
}
return sum/array.length;
}