import java.util.Scanner;
public class MatrixMultiply{
Scanner scanner;
int a[][];
int b[][];
int c[][];

public MatrixMultiply(){
scanner=new Scanner(System.in);
a=new int [2][3];
b=new int [3][4]; 
c=new int[2][4];
input(a,2,3);
input(b,3,4);
multiply(a,b,c);
output(c,2,4);
}

public void input(int aa[][],int row,int col){
System.out.println("输入数组:行数="+row+"列数="+col);
for(int i=0;i<row;i++)
  for(int j=0;j<col;j++)
   a[i][j]=scanner.nextInt();
}

public void multiply(int aa[][] ,int bb[][] ,int result[][]){
for(int i=0;i<aa.length;i++){
for(int j=0;j<bb.length;j++){
for(int k=0;k<result.length;k++){
result[i][j]+=aa[i][k]*bb[k][j];
}
}
}
}

public void output(int aa[][],int row,int col){
System.out.println("输出数组");
for(int i=0;i<row;i++){
for(int j=0;j<col;j++)
  System.out.print(aa[i][j]+"    ");
   System.out.println();
  }
}

public static void main(String args[]){
MatrixMultiply mm=new MatrixMultiply();
System.exit(0);
}

}
调用input(a,2,3);时可以正常输入
但是调用input(b,3,4);时,输入1  2  3  4  到4回车时
会显示
Exception   in   thread   "main "   java.lang.ArrayIndexOutOfBoundsException:3 
                at   MatrixMultiply.input(MatrixMultiply.java: 23) 
                at   MatrixMultiply.(init)(MatrixMultiply.java: 14)
                at   MatrixMultiply.main(MatrixMultiply.java: 46)那位帮下忙看下是什么问题
                

解决方案 »

  1.   

    b=new int [3][4]; 
    input(b,3,4); 
    public void input(int aa[][],int row,int col){ 
    System.out.println("输入数组:行数="+row+"列数="+col); 
    for(int i=0;i <row;i++) 
      for(int j=0;j <col;j++) 
      a[i][j]=scanner.nextInt(); 

    没越界吧!!
      

  2.   

    应该是    aa[i][j]=scanner.nextInt(); public void input(int aa[][],int row,int col){ 
    System.out.println("输入数组:行数="+row+"列数="+col); 
    for(int i=0;i <row;i++) 
      for(int j=0;j <col;j++) 
      aa[i][j]=scanner.nextInt();