2016-12-29 59 views
-2

我正在嘗試解決此練習,但在嘗試這樣做時遇到了一些問題。從邏輯上講,我認爲我的想法是正確的。你能看看我的代碼,並試圖幫助我嗎?對Decresing Order中的數組排序--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 ++)'? outer for循環將永遠不會運行,並且永遠不會中斷。 – GurV

+1

好吧,當我打印出第二個數組我創建的元素以降序排列時,它只打印零...你會在邏輯上改變什麼? –

回答

1

你可以嘗試使用Arrays.sort(T []一,比較器C)):

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

作爲一項練習,我不認爲這是他的老師正在尋找的 –

+0

我已經使用集合完成了練習......但我試圖用另一種方式做練習。 。並避免收藏......你認爲我做錯了什麼? –

+1

首先,for(posicao_array2 = 0; posicao_array2 == 99; posicao_array2 ++)將無法工作。使用'<='而不是'=='。現在,該循環將永遠不會運行 –