我想为我的作业解决问题。我必须使用我创建的Java中的方法自行乘以数组。但是,我的方法不起作用,我不知道为什么。
public static void initialiser(int mat[][]) {
int i,j;
for (i = 0; i < mat.length; i++) {
for(j = 0; j < mat[0].length; j++) {
mat[i][j] = 0;
}
}
}
public static int[][] produit(int mat1[][], int mat2[][]) {
int i,j,k;
int [][] matProduit = new int[mat1.length][mat2[0].length];
for (i = 0; i < mat1.length; i++) {
for(j = 0; j < mat2[0].length; j++) {
initialiser(matProduit);
for (k = 0; k < mat2.length; k++) {
matProduit[i][j] = mat1[i][k] * mat2[k][j];
}
}
}
return matProduit;
}
这是我应该得到的结果:
0 1 0 0 0 0
0 0 1 0 0 1
0 0 0 0 1 1
0 0 1 0 1 0
0 0 0 0 0 0
0 0 0 0 0 0
这是我得到的结果:
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
答案 0 :(得分:1)
正如评论中的Assylias所指出的那样,您在每次迭代时都会调用initialiser(matProduit)
,从而将矩阵重置为零。
我建议你为这些问题尝试调试模式。它是您日常编码的首选工具。
Please find my own answer on another question,解决调试,如何操作,激活它并至少正确使用它。