【发布时间】:2021-07-26 20:55:15
【问题描述】:
我的程序根本没有对数字进行排序。它按照最初输入的顺序显示它们。它必须从最小到最大对它们进行排序。下面的代码应该找到数组中最大的数字,并与最后一个交换。代码如下:
import java.util.Scanner;
public class maxSorttt {
public static void main(String[] args) {
double[] ten = new double[10];
Scanner input = new Scanner(System.in);
System.out.print("Enter 10 numbers: ");
for (int i = 0; i < ten.length; i++)
ten[i] = input.nextDouble();
sort(ten);
}
public static void sort(double[] array) {
for (int i = array.length - 1; i < 0; i--) {
double currentMax = array[i];
int currentMaxIndex = i;
for (int x = i - 1; x < -1; x--) {
if (currentMax < array[x]) {
currentMax = array[x];
currentMaxIndex = x;
}
}
if (currentMaxIndex != i) {
array[currentMaxIndex] = array[i];
array[i] = currentMax;
}
}
for (int i = 0; i < array.length; i++)
System.out.print(array[i] + " ");
}
}
【问题讨论】:
-
谢谢bschellekens!你的答案有效。我很困惑。我希望循环在小于 0 时停止,所以是的 i>=0 是正确的。