Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么不能打印阵列的正确中值?_Java_Algorithm_Debugging - Fatal编程技术网

Java 为什么不能打印阵列的正确中值?

Java 为什么不能打印阵列的正确中值?,java,algorithm,debugging,Java,Algorithm,Debugging,因为数组的长度是偶数,我们必须加上12+8=20,然后除以2。20 / 2 = 10. 但为什么它要在控制台中打印30?即使我排除了array.sorta;,它仍然打印30 应该印10张。我做错了什么 public static void solution(int[] a) { Arrays.sort(a); int median = 0; if(a.length % 2 != 0) { median = a[(a.length - 1) / 2];

因为数组的长度是偶数,我们必须加上12+8=20,然后除以2。20 / 2 = 10. 但为什么它要在控制台中打印30?即使我排除了array.sorta;,它仍然打印30

应该印10张。我做错了什么

public static void solution(int[] a) {
    Arrays.sort(a);
    int median = 0;

    if(a.length % 2 != 0) {
        median = a[(a.length - 1) / 2];
    } else {
        median = (a[(a.length / 2)] + a[(a.length - 1 / 2) - 1]) / 2;
    } 
    System.out.println(median);
}

public static void main(String args[]) {
    int[] a = {5,9,8,12,19,48};
    solution(a);
}

它应该是中位数=a[a.length/2-1]+a[a.length/2]/2

为什么a.length为1/2?为什么a.length-1/2-1?a.length-1/2将是a.length-0,因为运算符precedence@CarlosHeuberger我想这就是我一直在努力正确地添加它们的原因。我希望a.length/2-1