就是测试一下两个数组相乘,程序怎么也看不出错误啊,怎么执行就出现E
xception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
问题在 result += a[i][k] * b[k][j];
怎么解决阿???package variant;class C{
public static void main(String args[]) {
int a[][] = { {1, 2, 3}, {4, 5, 6} , {7, 8, 9}};
int[][] b=a.clone();
b = new int[a.length][a[0].length];
System.arraycopy(a, 0, b, 0, a.length); //通过arraycopy()函数拷贝数组
b[0][0] = 4; //改变数组b[0][0]的值
System.out.println("a[][]");
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length; j++) {
System.out.print(a[i][j] + " ");
}
System.out.println();
}
System.out.println("b[][]");
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
System.out.print(b[i][j] + " ");
}
System.out.println();
}
//相乘
int[][] c=new int[3][3];
int result;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
result=0;
for(int k=0;k<3;i++){
result += a[i][k] * b[k][j];
}
c[i][j]=result;
}
}
System.out.println("c[][]");
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
System.out.print(c[i][j] + " ");
}
System.out.println();
} }
}
xception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
问题在 result += a[i][k] * b[k][j];
怎么解决阿???package variant;class C{
public static void main(String args[]) {
int a[][] = { {1, 2, 3}, {4, 5, 6} , {7, 8, 9}};
int[][] b=a.clone();
b = new int[a.length][a[0].length];
System.arraycopy(a, 0, b, 0, a.length); //通过arraycopy()函数拷贝数组
b[0][0] = 4; //改变数组b[0][0]的值
System.out.println("a[][]");
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length; j++) {
System.out.print(a[i][j] + " ");
}
System.out.println();
}
System.out.println("b[][]");
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
System.out.print(b[i][j] + " ");
}
System.out.println();
}
//相乘
int[][] c=new int[3][3];
int result;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
result=0;
for(int k=0;k<3;i++){
result += a[i][k] * b[k][j];
}
c[i][j]=result;
}
}
System.out.println("c[][]");
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
System.out.print(c[i][j] + " ");
}
System.out.println();
} }
}
解决方案 »
- java调用matlab生成的类时候出现错误,报错如下
- Junit配置
- System.out.print("哈喽world!")的详解
- 使用用JDK的困惑,输入statement想找帮助....
- Jmail 出错,msg.setRecipients(javax.mail.Message.RecipientType.To,address);//找不到符号 只能是javax.mail.Message.RecipientType
- javac HelloWord.java 不是内部或外部命令
- list 是不是不能用JPopmeun?
- 高分求解一个java问题!
- Show过时了~用什么代替呢~?
- JTable的问题(急,先谢大侠们)
- String sql in() 问题
- 求用JAVA写的资源管理器
int[][] c=new int[3][3];
int result;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
result=0;
for(int k=0;k <3;i++){ //应该是k++
result += a[i][k] * b[k][j];
}
c[i][j]=result;
}
}
LZ,错误应该知道是什么吧?数组越界
检查下 result=0;
for(int k=0;k <3;i++){
result += a[i][k] * b[k][j];
}
c[i][j]=result;
result += a[i][k] * b[k][j];
}
这里是i++吗?这里i++,i的值超过了3,数组越界了
是不是应该是k++啊