2016-12-29 4 views
-2

Я пытаюсь решить это упражнение, но перед тем, как пытаться это сделать, у меня возникают некоторые проблемы. В логических терминах я считаю, что я прав. Не могли бы вы взглянуть на мой код и попытаться помочь мне?Сортировка массива в порядке сокращения - Java

import java.util.Arrays; 
import java.util.Random; 


public class exercicio_4_alapata { 
    public static void main(String[] args) { 

     int [] Array_numal; 
     Array_numal = new int [100]; 

     int [] ArrayOrdenado; 
     ArrayOrdenado = new int [100]; 

     int posicao_array; 
     int posicao_array2 = 0; 

     for (posicao_array = 0; posicao_array < Array_numal.length; posicao_array ++) { 
      Random rand = new Random(); 
      Array_numal [posicao_array] = rand.nextInt(101); 
     } 

     int maior = Array_numal [0]; 


     while (maior != ArrayOrdenado[99]) { 

      for (posicao_array2 = 0; posicao_array2 == 99; posicao_array2 ++) { 

       for (posicao_array = 0; posicao_array < Array_numal.length; posicao_array ++) { 

        if ((Array_numal[posicao_array] > maior) && (maior < ArrayOrdenado [posicao_array2 - 1])) { 
         maior = ArrayOrdenado [posicao_array2]; 
        } 
       } 
      } 
     } 


     for (posicao_array2 = 0; posicao_array2 < ArrayOrdenado.length; posicao_array2 ++) { 
      System.out.println(ArrayOrdenado[posicao_array2]); 
     }  

    } 
} 
+0

Какие проблемы вы сталкиваетесь? –

+1

'(posicao_array2 = 0; posicao_array2 == 99; posicao_array2 ++)'? внешняя петля никогда не будет работать, а внешняя - никогда не сломается. – GurV

+1

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

ответ

1

Вы можете попробовать использовать Arrays.sort (T [] а, компаратор с)):

Arrays.sort(a, Collections.reverseOrder()); 
+1

Будучи упражнением, я не думаю, что это его учитель ищет –

+0

Я уже делал упражнение с помощью коллекций ... но я пытаюсь сделать это по-другому .. и избегая коллекций ... как вы думаете, я поступаю неправильно? –

+1

Прежде всего, 'for (posicao_array2 = 0; posicao_array2 == 99; posicao_array2 ++)' никогда не будет работать. Используйте '<=' вместо '=='. Как и сейчас, этот цикл никогда не будет запущен –

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