此问题在此处已有答案:
What's the simplest way to print a Java array?(36个答案)
11小时前关门了。
我正在尝试对一个数组进行降序排序。数组的大小来自用户输入,然后数组的内容来自用户输入。然后数组被传递给一个函数,该函数对它进行排序。问题是,它不是打印排序后的数组,而是打印[I@5caf905d。通过print语句,我已经将问题定位到扫描仪从用户输入中获取[I@5caf905d作为最终值,它正好出现在所有正确输入之后。我不知道这个值是从哪里来的,而且我也不明白为什么函数会把它打印出来,好像它是整个数组一样。感谢所有帮助!
下面是我的代码。输入为:10分39秒
import java.util.Scanner;
public class LabProgram
{
public static void sortArray (int [] myArr, int arrSize)
{
int temp;
int i;
for (i = 0; i < arrSize - 1; i++)
{
if (myArr[i] < myArr[i + 1])
{
temp = myArr[i];
myArr[i] = myArr[i + 1];
myArr[i + 1] = temp;
}
}
System.out.println(myArr);
}
public static void main(String[] args)
{
Scanner scnr = new Scanner (System.in);
int [] myArr;
int arrSize;
int i;
arrSize = scnr.nextInt();
myArr = new int[arrSize];
for (i = 0; i < arrSize; i++)
myArr[i] = scnr.nextInt();
sortArray (myArr, arrSize);
}
}
1条答案
按热度按时间ukqbszuj1#
您应该使用最简单的排序算法之一,例如Selection Sort:
顺便说一句,你不应该把排序和打印混合在一起,最好把这些部分分开。