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)那位帮下忙看下是什么问题
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)那位帮下忙看下是什么问题
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();
}
没越界吧!!
System.out.println("输入数组:行数="+row+"列数="+col);
for(int i=0;i <row;i++)
for(int j=0;j <col;j++)
aa[i][j]=scanner.nextInt();
}