0

错误消息是 - 线程“main”中的异常 java.lang.ArrayIndexOutOfBoundsException: 2

我将一个二维数组传递给一个方法,并将数组中的值乘以 2。这是下面的方法。

当我从 main 传入第一个数组而不是第二个数组时,它可以正常工作 - 这些也显示在方法代码下方

有谁知道如何修改这个错误?我也不能硬编码循环迭代等

int setuparray2 [][] = new int [][] {{4, 5},{6, 9} };                               
int setuparray3 [][] = new int [][] {{4, 6, 3},{-1,9,-5}};

scalarMultiplication(2,setuparray1);
scalarMultiplication(2,setuparray3);


public static void scalarMultiplication( int factor, int[][] a)
{   
    //creates a new array to hold the multiplied value
  int multiplyArray [][] = new int [a.length][a.length];

  for(int i = 0; i < a.length; i++)
  {
    for(int j = 0; j < a[i].length; j++)
    {   
    //multiplys each element in the array by the factor     
    multiplyArray[i][j] = a[i][j] * factor;                                     
    }
  }
  //prints the array with the results
  printArray(multiplyArray);
}
4

2 回答 2

1

创建时multiplyArray您没有保留足够的空间。

代替:

int multiplyArray [][] = new int [a.length][a.length];

写:

int multiplyArray [][] = new int [a.length][a[0].length];
于 2013-03-03T15:57:30.660 回答
0

您以错误的方式初始化它,下面应该是正确的方式

 int multiplyArray [][] = new int [2][3];
于 2013-03-03T16:00:32.493 回答