2011-11-13 74 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'? –

相关问题