我编写的用于乘法矩阵的函数未正确输出或给我一个空白。它设法给了我一个正确的输出,尽管我再也找不到该数组了。
输入时
int[][] test = new int[][]{
{2, 4},
{5, 3},
{3, 5}
};
int[][] test2 = new int[][]{
{3, 4, 2},
{5, 1, 2}
};
返回一个零数组
int[][] toRet = new int[arr1.length][arr2[0].length];
for(int i = 0; i < arr1.length; i++){
for(int j = 0; j < arr2[0].length; j++){
for(int k = 02; k < arr1[0].length; k++){
toRet[i][j] += arr1[i][k] * arr2[k][j];
}
}
}
return toRet;
}```
It worked for a minute and I didn't change anything but my test.
答案 0 :(得分:0)
您的第3个循环是错误的。您使用2初始化了k,它应该为k = 0。现在带你 例。您的矩阵是
int[][] test = new int[][]{
{2, 4},
{5, 3},
{3, 5}
};
arr1 [0] .length 将返回2,因为只有2个元素,而 k
for(int i = 0; i < arr1.length; i++){
for(int j = 0; j < arr2[0].length; j++){
for(int k = 0; k < arr1[0].length; k++){
toRet[i][j] += arr1[i][k] * arr2[k][j];
}
}
}