import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int x = scanner.nextInt();
        int y = scanner.nextInt();
        int z = scanner.nextInt();

        // 读取矩阵A
        int[][] a = new int[x][y];
        for (int i = 0; i < x; i++) {
            for (int j = 0; j < y; j++) {
                a[i][j] = scanner.nextInt();
            }
        }

        // 读取矩阵B
        int[][] b = new int[y][z];
        for (int i = 0; i < y; i++) {
            for (int j = 0; j < z; j++) {
                b[i][j] = scanner.nextInt();
            }
        }

        // 计算矩阵乘积C
        int[][] c = new int[x][z];
        for (int i = 0; i < x; i++) {
            for (int j = 0; j < z; j++) {
                int sum = 0;
                for (int k = 0; k < y; k++) {
                    sum += a[i][k] * b[k][j];
                }
                c[i][j] = sum;
            }
        }

        // 输出结果
        for (int i = 0; i < x; i++) {
            StringBuilder sb = new StringBuilder();
            for (int j = 0; j < z; j++) {
                if (j > 0) {
                    sb.append(" ");
                }
                sb.append(c[i][j]);
            }
            System.out.println(sb.toString());
        }
    }
}

https://www.nowcoder.com/discuss/727521113110073344

思路:

  1. 输入处理:使用Scanner读取输入数据,首先读取矩阵的维度参数x, y, z。
  2. 矩阵存储:分别用二维数组a和b存储输入的两个矩阵。
  3. 矩阵乘法:通过三重循环计算每个元素的值,外层循环遍历结果矩阵的行和列,内层循环计算点积和。
  4. 结果输出:使用StringBuilder构造每行的输出字符串,确保元素之间用空格分隔,行末没有多余空格。