我正在制作一个可以计算我自己选择的数组的均值(返回两倍),中位数(返回两倍),模式(返回为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[]
方法