2014-04-07 121 views
0

我有一個問題,我的隨機數組排序。隨機數組排序

我想要做的是做一個if語句,以確保arr[0]總是大於arr[1]

爲什麼?那麼,我的程序會生成兩個從0到99的隨機數,它會執行簡單的數學問題,如減法和除法。由於您無法正確劃分55/99,因此第一個arr[0]應始終大於arr[1]

這裏是我在哪裏,並感謝您的幫助!

public static int[] randomNumbers(){ 
    Random obj = new Random(); 

    int arr[] = new int[2]; //init array to hold 2 numbers 

    arr[0] = obj.nextInt(99); //number 1 randomized 0 - 9 // sort array 
    arr[1] = obj.nextInt(99); //number 2 randomized 0 - 9 

    //do compare to make sure arr[0] is always greater than arr[1] 
    //but how??? 

    return arr; 

    /*int rgen = obj.nextInt(10); //first number has to be larger than second 0 - 10 
    int rgen1 = obj.nextInt(9); //random 0 - 9 
    int randomNumber = rgen + rgen1; //stores the answer*/ 
} 
+2

'if(arr [0]

+1

你知道這些數字在0到98的範圍內,對吧? –

+0

有時我會忘記...;) –

回答

4

只生成兩個數字,然後切換它們,如果第二個數字較大。

if (arr[1] > arr[0]) { 
    int temp = arr[0]; 
    arr[0] = arr[1]; 
    arr[1] = temp; 
} 
+0

謝謝,作品像一個魅力。 –

1

您正在生成數字從0到98.如果您想包含99您應該調用obj.nextInt(100)。

arr[0] = obj.nextInt(100); 
if(arr[0]==0) 
    arr[1]=0; 
else 
    arr[1] = obj.nextInt(arr[0]+1); 

ARR [0]將獲得[0100 [

如果所產生的數是0,一個數ARR [1]可以是隻有0

否則,ARR [1]將在[0,arr [0] +1 [(so [0,arr [0]]);

注意:將非正數傳遞給nextInt()會引發異常。