2011-11-13 539 views
1

我似乎無法解決這個問題。我已經找到它了。 這個任務是實現一個棒球運動員的球衣號碼,擊球平均數和散步次數。必須使用20列和3行的2維數組。 我正在設置線條,爲球員的蝙蝠次數和結果製作隨機數。但我得到一個無法從int轉換爲int []的錯誤。 我已經閱讀了幾個其他相同問題的問題,似乎沒有人幫助我。我可能不理解他們,但我仍然無法解決問題。 謝謝 d類型不匹配:無法從int轉換爲int []

import java.util.Random; 

public class Stats 

public static void main(String[] args) 
{ 

    int[][] array = { { 1, 2, 3 }, 
         { 4, 5, 6 }, 
         { 7, 8, 9 }, 
         { 10, 11, 12 }, 
         { 13, 14, 15 }, 
         { 16, 17, 18 }, 
         { 19, 20, 21 }, 
         { 22, 23, 24 }, 
         { 25, 26, 27 }, 
         { 28, 29, 30 }, 
         { 31, 32, 33 }, 
         { 34, 35, 36 }, 
         { 37, 38, 39 }, 
         { 40, 41, 42 }, 
         { 43, 44, 45 }, 
         { 46, 47, 48 }, 
         { 49, 50, 51 }, 
         { 52, 53, 54 }, 
         { 55, 56, 57 }, 
         { 58, 59, 60 } }; 

    Random randomNumbers = new Random(); 

    for (int row = 0; row < array.length; row++) 
    { 

     for (int column = 0; column < array[ row ].length; column++) 
     { 
      int counter = 0; 

      array[ counter ] = randomNumbers.nextInt() //Error here 

      System.out.print(counter + "\t " + array[ counter ] + "\t"); 

      counter++; 
     } 

     System.out.println(" "); 
    } 

} 
} 
+0

什麼'計數器'變量意味着什麼?因爲現在它只是坐在那裏,讓你的編譯器生氣。 –

+0

請問行號? – MathSquared

回答

3

我認爲你必須分配給數組變量的任何值之前指定的所有尺寸。例如數組[0] [1],而不是僅數組[0]

2

因爲使用的是2D陣列

陣列[0]是3個元素的陣列,因此,如果嘗試這樣做陣列[0 ] = 0,這將是錯誤的,這是你的線路試圖做的。因爲,數組[0]包含一個數組。

你需要做的

array[counter][0] = shortNumber; 
array[counter][1] = battingAverage; 
array[counter][0] = numWalks; 

顯然這些值可以是隨機量等

7

您需要訪問這兩個指標。

array[ row ][ column ] = randomNumbers.nextInt(); //Error here 

這也可以。如果你把你的int[] oneRow = array[row];內環上面你可以oneRow取代所有array[row]在內環寫成

int[] oneRow = array[row]; 
int oneCell = oneRow[column]; 

此外,counter將始終爲0,每次在聲明它時每次進入內部循環時都將該值重置爲0。

您可能想使用計數器,但將其放在內部循環之外。

int counter = 0; 
for (int column = 0; column < array[ row ].length; column++) 
{ 
    array[ row ][ counter ] = randomNumbers.nextInt() //Error here 
1

@Carlos 很抱歉的錯誤...我不小心用C#語法 我使用Integer類只是爲了說明爲什麼新的關鍵字有時是必要的......

The Best Approach is to declare the array and initialise it at runtime 

class BaseBall { 
Integer[][] array ; 
int noOfBaseBallPlayers; 

public BaseBall(int noOfBaseBallPlayers) 
{ 
this.noOfBaseBallPlayers = noOfBaseBallPlayers; 
this.array = new Integer[noOfBaseBallPlayers][3]; 
} 

public void assignValues() 
{ 

Random randomNumbers = new Random(); 

    for (int row = 0; row < noOfBaseBallPlayers; row++) 
    { 
     for (int column = 0; column < 3 ; column++) 
     { 
      array[row][coloumn] = new Integer(randomNumbers.nextInt()) 
     } 

    } 


} 

} 
+0

什麼? '陣列[行,列]'?這不是有效的Java!爲什麼使用包裝類'Integer'而不是'int'? –

相關問題