JAVA实现矩阵乘法

计算两个矩阵的乘法。n*m阶的矩阵A乘以m*k阶的矩阵B得到的矩阵Cn*k阶的,且C[i][j] = A[i][0]*B[0][j] + A[i][1]*B[1][j] + …… +A[i][m-1]*B[m-1][j](C[i][j]表示C矩阵中第i行第j列元素)。
输入
第一行为n,m, k,表示A矩阵是nm列,B矩阵是mk列,n, m, k均小于100 然后先后输入AB两个矩阵,A矩阵nm列,B矩阵mk列,矩阵中每个元素的绝对值不会大于1000
输出
输出矩阵C,一共n行,每行k个整数,整数之间以一个空格分开。
样例输入

3 2 3
1 1
1 1
1 1
1 1 1
1 1 1

样例输出

2 2 2
2 2 2
2 2 2

代码:

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        int [][] a = new int [110][110];
        int [][] b = new int [110][110];
        int [][] c = new int [110][110];
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int m = scanner.nextInt();
        int k = scanner.nextInt();
        for (int i = 0; i < n; i++)
            for (int j = 0; j < m; j++)
                a[i][j] = scanner.nextInt();
        for (int i = 0; i < m; i++)
            for (int j = 0; j < k; j++)
                b[i][j] = scanner.nextInt();        
        scanner.close();
        for(int i = 0; i <= n - 1; i++)
            for(int j = 0; j <= k; j++) 
                for(int t = 0; t <= m; t++)
                    c[i][j] += a[i][t] * b[t][j];
        for(int i = 0; i < n ; i++){
            for(int j = 0; j < k; j++){
                System.out.print(c[i][j] + " ");
            }
            System.out.println(" ");
        }
    }
}

发表回复

您的电子邮箱地址不会被公开。