我昨天发布了一个关于数组中索引排序的问题。我得到了奇怪的结果,这部分是正确的。我找到了原因,但我不知道如何解决它。
我已经声明了一个数组的最大索引数为 50。将数据读入文件后,只有 24 个左右填充了实际数据,其余的填充了 0。当我去打印时,所有 50 个索引都按升序列出。我不知道如何只打印带有数据的索引。
这是我昨天的问题的链接:将双数组排序为升序
下面是我对数组声明和初始化、排序循环和打印的代码。任何帮助都会很棒!
private double[] x;
x = new double[50];
int index, j = x.length - 1,double temp;
for (j = x.length - 1; j >= 0; j--) {
for (index = 0; index <= j - 1; index++) { //start for
if (x[index] > x[index + 1]) { //start if
temp = x[index];
x[index] = x[index + 1];
x[index + 1] = temp;
}
}
}
for (index = 0; index < x.length; index++) {
System.out.printf("%3d. \t\t%5.1f%%\n", (index + 1), x[index]);
}