所以这是我的程序,它链接到一个驱动程序。我有问题可能有损转换,我明白我在哪里,但我不知道如何解决它。我需要通过从最低到最高排序数字来重新排列Double[] array = new Double[20]
,如下所示。如果对我的程序进行重大更改,我该怎样才能正确执行此操作?
public void insert (double val){
if(count < 20){
if(val >= 1 || val <= 10){
array[count] = val;
count++;
}
}
}
double min;
double max;
double tmp;
for(min = count - 1; min > 0; min--){
max = 0;
for(int i = 1; i <= min; i++){ // Error here because of the min value
if(val[i] > val[max]){ // Error here because of the max value
max = i;
}
}
if(max != min){
tmp = val[max]; // Error here because of the max value
val[max] = val[min]; // Error here because of the min value
val[min] = tmp; // Error here because of the min value
}
}
答案 0 :(得分:1)
min
和max
变量不应该是双倍的。它们是数组索引,因此它们在实践中受到0和Integer.MAX_VALUE的限制。
将其更改为int
。