#include using namespace std;

void input(int** &matrix, int n, int m) {//输入矩阵 matrix = new int*[n];//动态申请二维数组 for (int i = 0; i < n; i++) { matrix[i] = new int[m]; for (int j = 0; j < m; j++) { cin >> matrix[i][j]; } } }

void output(int** matrix, int n, int m) {//输出矩阵 for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { cout << matrix[i][j]; if (j != m - 1) cout << ' ';//控制行末无空格 } cout << endl; } }

void multiply(int** a, int** b, int** &c, int n, int p, int m) {//两个矩阵相乘 c = new int*[n];//动态申请结果矩阵 for (int i = 0; i < n; i++) { c[i] = new int[m]; for (int j = 0; j < m; j++) { c[i][j] = 0;//初始化为0 for (int k = 0; k < p; k++) {//按照公式计算结果矩阵c c[i][j] += a[i][k] * b[k][j]; } } } }

void release(int** &matrix, int n) {//释放动态二维数组 for (int i = 0; i < n; i++) { delete[] matrix[i]; } delete[] matrix; matrix = NULL; }

int main() { int n, p, m; cin >> n >> p >> m; int** a = NULL; input(a, n, p); int** b = NULL; input(b, p, m); int** c = NULL; multiply(a, b, c, n, p, m); output(c, n, m); release(a, n); release(b, p); release(c, n); return 0;


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

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