Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/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_Arrays_Sorting_Median - Fatal编程技术网

Java “我的”中的错误是什么;查找中间值“;实施

Java “我的”中的错误是什么;查找中间值“;实施,java,arrays,sorting,median,Java,Arrays,Sorting,Median,我发现有人有类似的问题(),但我不知道如何将其整合到我自己的代码中,因为我对java相当陌生。现在,我的findmedian方法返回的是0,而不是实际的中值,我似乎无法计算出来。谢谢 import java.util.Scanner; import java.util.Arrays; public class Original { public static void main(String[] args) { Scanner inputNumber = new

我发现有人有类似的问题(),但我不知道如何将其整合到我自己的代码中,因为我对java相当陌生。现在,我的findmedian方法返回的是0,而不是实际的中值,我似乎无法计算出来。谢谢

import java.util.Scanner;
import java.util.Arrays;

public class Original
{
    public static void main(String[] args)
    {
        Scanner inputNumber = new Scanner(System.in);
        Scanner dataItem = new Scanner(System.in);
        Scanner input = new Scanner(System.in);

        System.out.print("This stores a list of contirbutions to a charity drive.\n ");
        System.out.print("How many contributors will be entered? ");

        double contributors = inputNumber.nextDouble();
        double contributions[ ] = new double[50];  
        double contributions_check[] = findData (contributors, contributions);

        System.out.print("See if the contributions are correct. ");

        // Displays the contributions, loop allows numbers to be displayed correctly
        for (int count = 0; count < contributors; count++) {
            System.out.print(contributions_check[count] + "    ");
        }

        double median = findmedian(contributors,contributions_check);
        System.out.print("\n The median contribution is: " + median);
    }

    public static double[] findData(double n, double[] contributions2)
    {
        Scanner dataItem = new Scanner(System.in);

        // x must be 0 and x must be < than n
        for (int x = 0; x < n; x++) {
            System.out.print("Please enter the next contribution: ");
            contributions2[x] = dataItem.nextDouble();
        }

        return contributions2;
    }

    public static double findmedian(double n, double data[])
    {
        Arrays.sort(data);
        double median;

        if (data.length % 2 == 0) {
            median = ((double) data[data.length / 2] +
                      (double) data[data.length / 2 - 1]) / 2;
        } else {
            median = (double) data[data.length/2];
        }

        return median;
    }
}
import java.util.Scanner;
导入java.util.array;
公共类原件
{
公共静态void main(字符串[]args)
{
扫描仪输入编号=新扫描仪(System.in);
扫描仪数据项=新扫描仪(System.in);
扫描仪输入=新扫描仪(System.in);
System.out.print(“这存储了慈善活动的伤害列表。\n”);
System.out.print(“将输入多少贡献者?”);
双参与者=inputNumber.nextDouble();
双倍供款[]=新的双倍供款[50];
双重贡献_check[]=findData(贡献者,贡献);
System.out.print(“查看贡献是否正确”);
//显示贡献,循环允许正确显示数字
对于(int count=0;count
我认为问题在于您在
findmedian
中使用了
data.length
,您应该在那里使用
n
<代码>数据。长度始终为50,即使您只输入了5项……

使用参与者数量n来了解数组中的有效参与者

  public static double findmedian(double n, double data[])
        {
            Arrays.sort(data);
            double median;

            if (data.length % 2 == 0) {
                median = ((double) data[n / 2] +
                          (double) data[n / 2 - 1]) / 2;
            } else {
                median = (double) data[n/2];
            }

            return median;
        }

请对代码应用适当的格式,并删除不必要的空行