矩阵相乘需要注意:
当矩阵A的列数等于矩阵B的行数时,A与B可以相乘
矩阵C的行数等于矩阵A的行数,C的列数等于B的列数
乘积C的第m行第n列的元素等于矩阵A的第m行的元素与矩阵B的第n列对应元素乘积之和
代码实现:
#include
#define M 3
#define N 3
#define K 3
int main()
{
int A[M][K] = { 0 };
int B[K][N] = { 0 };
int C[M][N] = { 0 };
int i = 0;
int j = 0;
int m = 0;
printf("请输入A矩阵:\n");
for (i = 0; i < M; i++)
{
printf("A矩阵的%d行\n", i);
for (j = 0; j < K; j++)
{
scanf_s("%d", &A[i][j]);
}
}
printf("请输入B矩阵:\n");
for (i = 0; i < K; i++)
{
printf("B矩阵第%d行\n", i);
for (j = 0; j < N; j++)
{
scanf_s("%d", &B[i][j]);
}
}
printf("C矩阵:\n");
for (i = 0; i < M; i++)
{
for (j = 0; j < N; j++)
{
int sum = 0;
for (m = 0; m < K; m++)
{
sum = sum + A[i][m] * B[m][j];
}
C[i][j] = sum;
}
}
for (i = 0; i < M; i++)
{
for (j = 0; j < N; j++)
{
printf("%3d",C[i][j]);
}
printf("\n");
}
return 0;
}
运行结果如下图: