2015-03-08 3 views
0

Так что это моя программа, связанная с программой драйвера. У меня возникла проблема с возможным преобразованием с потерями, и я понимаю, где у меня это, но я не знаю, как это исправить. Мне нужно перестроить Double[] array = new Double[20], заказывая номера от самого низкого до самого высокого, как показано ниже. Как я могу сделать это правильно, внеся значительные изменения в свою программу?Java Возможная конверсия Lossy Double to Int

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

Ваш цикл, как представляется, не в методе, также где определен 'list' (или это' array')? –

+0

Похоже, он уже определил его, он просто хочет его сортировать, но я вижу вашу точку xD –

ответ

1

В min и max переменные не должны быть двойники. Они представляют собой индексы массивов, поэтому на практике они ограничены 0 и Integer.MAX_VALUE.

Измените их на int.

Смежные вопросы