#include using namespace std;

// 输入矩阵函数 void inputMatrix(int **&matrix, int rows, int cols) { matrix = new int *[rows]; for (int i = 0; i < rows; i++) { matrix[i] = new int[cols]; for (int j = 0; j < cols; j++) { cin >> matrix[i][j]; } } }

// 输出矩阵函数 void outputMatrix(int **matrix, int rows, int cols) { for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { cout << matrix[i][j] << ' '; } cout << endl; } }

// 矩阵相乘函数 void multiplyMatrices(int **a, int n, int p, int **b, int p1, int m, int **&c) { // 检查矩阵是否可乘 if (p != p1) { cout << "矩阵不可乘!" << endl; return; }

// 初始化结果矩阵
c = new int *[n];
for (int i = 0; i < n; i++) {
    c[i] = new int[m];
}

// 进行矩阵相乘运算
for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
        c[i][j] = 0;
        for (int k = 0; k < p; k++) {
            c[i][j] += a[i][k] * b[k][j];
        }
    }
}

}

int main() { int n, p, m; cin >> n >> p >> m;

// 动态申请矩阵内存
int **a, **b, **c;
inputMatrix(a, n, p);
inputMatrix(b, p, m);

// 执行矩阵相乘
multiplyMatrices(a, n, p, b, p, m, c);

// 输出结果矩阵
outputMatrix(c, n, m);

// 释放动态申请的内存
for (int i = 0; i < n; i++) {
    delete[] a[i];
}
delete[] a;
for (int i = 0; i < p; i++) {
    delete[] b[i];
}
delete[] b;
for (int i = 0; i < n; i++) {
    delete[] c[i];
}
delete[] c;
return 0;

}


原文地址: https://www.cveoy.top/t/topic/nwHg 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录