#include <stdio.h>
int main()
{
int a[4][3]; // 第一个矩阵,4行3列
int b[3][4]; // 第二个矩阵,3行4列
int c[4][4]; // 存放计算结果的矩阵,4行4列
// 读取第一个矩阵的数
printf("please input the number of the first matrix:\n");
for (int i = 0; i < 4; i++)
for (int j = 0; j < 3; j++)
scanf("%d", &a[i][j]);
// 读取第二矩阵的数
printf("please input the number of the second matrix:\n");
for (int i = 0; i < 3; i++)
for (int j = 0; j < 4; j++)
scanf("%d", &b[i][j]);
/*
* 计算矩阵相乘。
* 矩阵相乘的规则:第一个矩阵的第 i 行与第二个矩阵的第 j 列进行向量相乘得到结果矩阵的第 i 行第 j 的值
*/
for (int i = 0; i < 4; i++) // 结果矩阵的行,也可以算是第一个矩阵的行
{
for (int j = 0; j < 4; j++) // 结果矩阵的列,也可以算是第二个矩阵的列
{
int sum = 0;
for (int k = 0; k < 3; k++) // 第一个矩阵的列,同时也是第二个矩阵的行
sum += a[i][k] * b[k][j]; // 第一个矩阵的第 i 行与第二个矩阵的第 j 列的向量相乘
c[i][j] = sum;
}
}
// 输出结果
printf("the result is:\n");
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
printf("%d ", c[i][j]);
printf("\n");
}
return 0;
}