有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

两个数组的Java乘积

我想为我的家庭作业解决一个问题。我必须使用我创建的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

共 (1) 个答案

  1. # 1 楼答案

    正如注释中的Assylias所指出的,您在每次迭代中调用initialiser(matProduit),从而将矩阵重置为零

    我建议您尝试调试模式来解决此类问题。它是你日常编码的首选工具

    Please find my own answer on another question,处理调试,如何做,激活它,并至少正确地使用它