我这里有一个程序,用来计算用户输入的一定数量元素的中位数;但是我想在程序结束时显示排序列表。你可以看到我已经对元素进行了排序,但我想不出有什么方法可以在最后显示排序的数组。提前谢谢。
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("How many numbers do you want a median of?");
int num = sc.nextInt();
System.out.println("Enter the numbers: ");
int [] array = new int [num];
for (int i = 0 ; i < array.length; i++ ) {
array[i] = sc.nextInt();
}
int median = median(array);
System.out.println(median+" is a median of entered numbers.");
}
public static int median (int [] array) {
int n = array.length;
int temp;
for (int i=0; i < n-1; i++) {
for(int j=1; j < n-i; j++) {
if (array [j-1] > array [j]) {
temp = array [j-1];
array [j-1] = array [j];
array [j] = temp;
}
}
}
int median;
if (n % 2 == 0) {
median = (array [n/2-1]);
}
else {
median = array [(n/2)];
}
return median;
}
}
答案 0 :(得分:2)
在功能
中public static int median (int [] array)
您通过引用传递array
。这意味着您的排序结果将在main
中显示。您正在对阵列进行排序。
在main结束时,只需设置一个打印数组每个元素的循环。
答案 1 :(得分:2)
如果我理解正确,你只需打印一个数组?调用int median(int [])
方法后,数组已经排序。你只需打印它:
for(int i = 0; i < array.length; i++)
System.out.println(array[i]);
array
var是一个Object(所有数组都是Java中的对象),因此通过方法调用只发送指向对象的指针,而不是对象的副本。
希望有所帮助。