#include using namespace std; const int N = 110; int n, m, k; int a[N][N], b[N][N], c[N][N]; // 用户名:littlehb 密码:md******22 // 矩阵乘法模板 void mul(int a[][N], int b[][N], int c[][N]) { // 注意:这里的临时数组t绝不是画蛇添足! // 因为调用的时候,有时会传递mul(a,b,b)这样的东东,如果每次memset(c,0,sizeof c), // 就会造成b在运行前被清空,导致结果错误 int t[N][N] = {0}; for (int i = 0; i < N; i++) for (int j = 0; j < N; j++) for (int k = 0; k < N; k++) t[i][j] = t[i][j] + a[i][k] * b[k][j]; // 矩阵乘法 memcpy(c, t, sizeof t); } int main() { cin >> n >> m; // A矩阵 n*m for (int i = 1; i <= n; i++) for (int j = 1; j <= m; j++) cin >> a[i][j]; // B矩阵m*k cin >> k; for (int i = 1; i <= m; i++) for (int j = 1; j <= k; j++) cin >> b[i][j]; // 矩阵乘法 mul(a, b, c); // 输出结果,控制格式 for (int i = 1; i <= n; i++) { for (int j = 1; j <= k; j++) printf("%d ", c[i][j]); printf("\n"); } return 0; }