#include <iostream> #include <cstdio> #include <string> #include <algorithm> using namespace std; /** * 矩阵维数 */ const int DIMENSION = 3; /** * 矩阵 */ struct Matrix { int row; //矩阵的行 int col; //矩阵的列 int matrix[DIMENSION][DIMENSION]; //二维数组模拟矩阵 //构造函数 Matrix(int row, int col) { this->row = row; this->col = col; } }; /** * 矩阵乘法 * @param x * @param y * @return */ Matrix multiply(Matrix x, Matrix y); /** * 打印矩阵 * @param x */ void printMatrix(Matrix x); /** * 矩阵操作 * @return */ int main() { Matrix x = Matrix(2, 3); Matrix y = Matrix(3, 2); for (int i = 0; i < 2; ++i) { for (int j = 0; j < 3; ++j) { cin >> x.matrix[i][j]; } } for (int i = 0; i < 3; ++i) { for (int j = 0; j < 2; ++j) { cin >> y.matrix[i][j]; } } Matrix ans = multiply(x, y); printMatrix(ans); return 0; } Matrix multiply(Matrix x, Matrix y) { //矩阵乘法结果是x的行和y的列 Matrix ans(x.row, y.col); for (int i = 0; i < ans.row; ++i) { for (int j = 0; j < ans.col; ++j) { //先初始化为0 ans.matrix[i][j] = 0; /* * 根据矩阵相乘的规则 * matrix[i][j] = x的第i行与y的第j列对应的乘积和 */ for (int k = 0; k < x.col; ++k) { ans.matrix[i][j] += x.matrix[i][k] * y.matrix[k][j]; } } } return ans; } void printMatrix(Matrix x) { for (int i = 0; i < x.row; ++i) { for (int j = 0; j < x.col; ++j) { cout << x.matrix[i][j] << " "; } cout << endl; } }