2015-05-03 3 views
-2

У меня есть код, который не работает, я поместил стрелку при ошибке.Я получаю сообщение об ошибке во время цикла

Я предполагаю, что вы должны сделать цикл while (j> 0) AND (массив в j-1> Min) `.

Что я делаю неправильно? Почему я продолжаю получать ошибки?

Пожалуйста, помогите! И спасибо за чтение! Это может быть просто глупая ошибка. Он говорит мне, что один из них - int, другой - логический, что мне делать?

private static int[] dorp(int[] myArray){ 
    int n = myArray.length; 
    int swap; 
    for(int i = n-1; i >= 0; i--){ 
     int j = i; 
     int min = myArray[i]; 
     --> while ((j = 0) && (myArray[j-1] > min)) { 
     myArray[j]=myArray[j-1]; 
     j=j-1; 
      } 
     j=min; 
     } 
    return myArray; 
} 

Новый код

int myArray[] = {1, 6, -1, 7, 83, 19, -3, 6, 2, 4, 6, 32, 66, -9}; 
    int n = myArray.length; 
    myArray = doop(myArray); 
    for (int i = 0; i < n; i++) { 
     System.out.println(myArray[i]); 
    } 
} 

private static int[] doop(int[] myArray) { 
    int n = myArray.length; 
    int swap; 
    for (int i = n - 1; i >= 0; i--) { 
     int j = i; 
     int min = myArray[i]; 
     while ((j == 0) && (myArray[j - 1] <= min)) { 
      myArray[j] = myArray[j - 1]; 
      j = j - 1; 
     } 
     myArray[j] = min; 
    } 
    return myArray; 
} 

ответ

0
(j = 0) 

результатов в int и Int &&boolean не приводит к boolean, вы хотите его j==0 если ваше намерение состоит в том, чтобы добавить сравнение с 0

+0

Спасибо, человек, я сделал это, и я очень признателен, я сохраню это знание затылок на потом, но теперь я получаю ошибки. Исключение основной темы. Можете ли вы сказать мне, что случилось? Предположим, что все это нужно отсортировать. – user2237848

+0

Я добавил новую строку кода к вопросу. – user2237848

0

ваше время всегда ложное. j = 0 означает присвоение значения 0 значению j. вам необходимо изменить его, как этот

while ((j == 0) && (myArray[j-1] > min)) { 
+0

Thx для ответа тоже. – user2237848

0

вам не нужно возвращать массив, так как массив передается по ссылке, поэтому любые изменения элементов внутри туАггау будут видны вне функции

ваш новый Doop функция будет

private static void doop(myArray) { 
    int temp, i, j;     
    for (i = 1; i < myArray.length; i++){ 
     temp = myArray[ i ]; 
     //for(j = i - 1; (j >= 0) && (myArray[ j ] < temp); j--) // sort array in descending order 
     for(j = i - 1; (j >= 0) && (myArray[ j ] > temp); j--) // sort array in ascending order 
     { 
      myArray[ j+1 ] = myArray[ j ]; 
     } 
     myArray[ j+1 ] = temp;  
    } 

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