我正在制作一个可以计算我自己选择的数组的均值(返回两倍),中位数(返回两倍),模式(返回为int)和标准差的图表。我能找到的最有用的东西是数组是用户输入的代码。

我一直在使用它和其他类似的this guide以及我的书和课堂笔记。我只是不断修改某些东西,直到它们以某种方式起作用为止。

但是就像我说的那样,在我的代码中,我只想将数组放入自己的内部,而不收集用户的输入。我陷入了中位数。我都输入了所有内容,但是编译器抛出了1条错误消息:

找到1个错误:
文件:C:\ Users \ Cori \ Desktop \ Statistics.java [行:41]
错误:未为统计类型定义方法bubbleSort(int [])

我完全按照链接的说明进行了bubbleSort,并且我一直在尝试各种疯狂的东西。我认为也许这与未定义变量有关,但我真的不知道,因为这对我来说很陌生。到目前为止,这是我的全部代码。我觉得如果我能弄清楚这一点,我的项目其余部分将非常容易。

  public class Statistics {
    public static void main(String[] args) {
        int[] a = { 22, 44, 66, 55, 33 };

        double mean;
        double median;
        median = calcMed(a);
        mean = calcMean(a);
        System.out.println("Median:" + median);
        System.out.println("Mean:" + mean);
    }

    public static double calcMean(int[] a) {
        // int[]array = {22,44,66,55,33};
        int i;// =0;
        int sum = 0;
        double mean = 0;
        for (i = 0; i < a.length; i++) {
            System.out.println(a[i]);
            sum = sum + a[i];
        }
        {
            mean = ((double) sum / ((double) a.length));
            System.out.println();
        }
        {
            return mean;
        }
    }

    // Calulate median
    public static double calcMed(int[] a) {
        int i;
        int sum = 0;
        int[] sortedArr = bubbleSort(a);

        double median = 0;
        {
            int index = (sortedArr.length - 1) / 2;
            median = sortedArr[index];
        }
        for (int v : sortedArr) {
            System.out.println(v);
        }
        return median;
    }
}

请不要管我的格式(只是一些技巧会很不错)。我只需要知道如何修复bubbleSort即可计算中位数。另外,我知道有些事情是不必要的,因此,如果您还可以给我一些可以删除的内容以及可能会更容易的提示。

我想到了。

最佳答案

您缺少bubbleSort方法(从相关链接复制):

/**
 * This program returns a sorted version of the input array.
 *
 * @param arr
 * @return
 */
public static int[] bubbleSort(int[] arr)
{
    // We must sort the array.  We will use an algorithm called Bubble Sort.
    boolean performedSwap = true;
    int tempValue = 0;

    // If we performed a swap at some point in an iteration, this means that array
    // wasn't sorted and we need to perform another iteration
    while(performedSwap)
    {
        performedSwap = false;

        // Iterate through the array, swapping pairs that are out of order.
        // If we performed a swap, we set the "performedSwap" flag to true
        for (int i=0; i < arr.length; i++)
        {
            if (arr[i] > arr[i+1])
            {
                tempValue = arr[i];
                arr[i] = arr[i+1];
                arr[i+1] = tempValue;

                performedSwap = true;
            }
        }
    }

    return arr;
}

如果没有这种方法,您将无法对数组进行排序(比冒泡排序有更好的解决方案,但在这种情况下还可以)。
错误:

找到1个错误:文件:C:\ Users \ Cori \ Desktop \ Statistics.java [行:41]
错误:该类型的方法bubbleSort(int [])未定义
统计

告诉您缺少带有参数bubbleSort()int[]方法

09-09 19:34