1 条题解

  • 0
    @ 2023-3-7 22:04:08

    代码思路:

    1. 先读入三个整数n、m、k,分别表示矩阵A的行数和列数、矩阵B的列数,也就是A是n行m列的矩阵,B是m行k列的矩阵。
    2. 定义一个二维数组A,读入A矩阵的所有元素。
    3. 定义一个二维数组B,读入B矩阵的所有元素。
    4. 定义一个二维数组C,并将其所有元素初始化为0,用来存放A矩阵和B矩阵的乘积。
    5. 计算A矩阵和B矩阵的乘积,将结果存放在C矩阵中。
    6. 输出C矩阵的所有元素。

    在计算A矩阵和B矩阵的乘积时,需要使用三层循环,分别遍历A矩阵的每一行和B矩阵的每一列,并将结果累加到C矩阵中。

    最后,输出C矩阵的所有元素即可。

    #include <iostream>
    using namespace std;
    
    int main() {
        int n, m, k;
        cin >> n >> m >> k;
    
        // 定义矩阵A
        int A[100][100];
        for(int i = 0; i < n; i++) {
            for(int j = 0; j < m; j++) {
                cin >> A[i][j];
            }
        }
    
        // 定义矩阵B
        int B[100][100];
        for(int i = 0; i < m; i++) {
            for(int j = 0; j < k; j++) {
                cin >> B[i][j];
            }
        }
    
        // 定义矩阵C
        int C[100][100] = {0};
    
        // 计算矩阵乘法
        for(int i = 0; i < n; i++) {
            for(int j = 0; j < k; j++) {
                for(int p = 0; p < m; p++) {
                    C[i][j] += A[i][p] * B[p][j];
                }
            }
        }
    
        // 输出矩阵C
        for(int i = 0; i < n; i++) {
            for(int j = 0; j < k; j++) {
                cout << C[i][j] << " ";
            }
            cout << endl;
        }
    
        return 0;
    }
    
    • 1

    信息

    ID
    250
    时间
    1000ms
    内存
    128MiB
    难度
    10
    标签
    (无)
    递交数
    2
    已通过
    1
    上传者