java.lang.ArrayIndexOutOfBoundsException: 1

来源:百度知道 编辑:UC知道 时间:2024/05/16 23:49:11
我想编两个
请那位大虾看看我这段程序,改了好半天,还是提示:java.lang.ArrayIndexOutOfBoundsException: 1

at MatrixMultiply.main(MatrixMultiply.java:35)

Exception in thread "main"

Java Result: 1
偶是新手,请大家多包涵了!^_^
public static void main(String[] args) {
int i,j,k;
int a[][]=new int[1][9];
int b[][]={{1},{2},{3},{4},{5},{6},{7},{8},{9}};
int c[][]=new int[9][9];
for(i=0;i<1;i++)
for(j=0;j<9;j++)
a[i][j]=(i+1)*(j+1);
for(i=0;i<1;i++){
for(j=0;j<9;j++){
c[i][j]=0;
for(k=0;k<9;k++)
c[i][j]+=a[i][k]*b[k][j];
}
}
System.out.println("\n***MatrixA***");
for(i=0;i<1;i++){
for(j=0;j<9;j++)
System.out.println(a[i][j]+" ");
System.out.println();
System.out.println("\n***MatrixB***");
for(i=0;i<1;i++){
for(j=0;j<9;j++)
System.out.print(b[i][j]+" ");
System.out.println()

a是1*9的矩阵,b是9*1的矩阵。相乘的结果不是9*9 而是1*1的
我把运算改承b*a了,估计是你要的结果。 有一点要提醒你,你写的不是面向对象的程序。。。

public class Matrix {
public static void main(String[] args) {
int i, j, k;
int a[][] = new int[1][9];
int b[][] = { { 1 }, { 2 }, { 3 }, { 4 }, { 5 }, { 6 }, { 7 }, { 8 },
{ 9 } };
int c[][] = new int[9][9];

// Initialize a[][]
for (i = 0; i < 1; i++) {
for (j = 0; j < 9; j++) {
a[i][j] = (i + 1) * (j + 1);
}
}

for (i = 0; i < 9; i++) {
for (j = 0; j < 9; j++) {
c[i][j] = 0;
for (k = 0; k < 1; k++)
c[i][j] += b[i][k] * a[k][j];
}
}

System.out.println("\n***MatrixA***");
for (i = 0; i < 1; i++) {
for (j = 0; j < 9; j++)
System.out.print(a[i][j] + " ");
}
System.out.println();

System.out.println("\n***MatrixB***"