2016-02-28 58 views
-3
public double median(){ 
double input =0; 
double answer =sum() * (input)/data.length; 
    return answer; 
    } 

这是我的代码,我有中位数,但当我运行该程序时,它仍然返回为零。数组数组为:{3.0,15.0,7.0,27.0};如何查找java数组数组的中值?

+0

它看起来像你试图计算均值而不是中值。 – Suever

+1

您的输入是永远为0。 – aribeiro

回答

1

你总是乘以零(输入= 0)。所以它总是会返回零。

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; 
} 
2

在您所提供的代码,它看起来像你试图找到意味着不是位数。我在下面提供了一些代码,可以帮助您找到答案。为了找到你需要对数组进行排序的中位数,这有点复杂。

简短的答案是删除输入= 0行。假设数据是一个公共变量,并且这个和是一个函数,它总结了你的代码应该工作的公共变量。

实现应该取决于上下文,但我会推荐一个静态函数,它将一个双精度数组作为单个参数。

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; 
    } 
}