两个矩阵相乘
核心思想:矩阵C中的元素C[i][j]=矩阵A中的第i行与矩阵B中的第j列对应位置每个值的乘积之和。
题目描述
矩阵A规模是n×m,矩阵B规模是m×p,现在需要你求A*B
输入
输入n,m。然后输入n×m的矩阵。
输入p,然后输入m×p的矩阵。
1<=n,m,p<=100
-10000<=矩阵元素<=10000
输出
输出相乘后的n×p的矩阵
样例输入
2 3
1 2 3
3 2 1
2
1 1
2 2
3 3
样例输出
14 14
10 10
#include<stdio.h>
const int N=3;
const int K=2;
const int M=3;
int main()
{
int i,j,t=0;
int a[N][K],b[K][M],c[N][M];
printf("请输入二维数组a:");
for(i = 0; i < N; i++)
{
for(j = 0; j < K; j++)
{
scanf("%d",&a[i][j]);
}
}
printf("请输入二维数组b: ");
for(i = 0; i < K; i++)
{
for(j = 0; j < M; j++)
{
scanf("%d",&b[i][j]);
}
}
printf("\n");
for(i = 0; i < N; i++)
{
for(j = 0; j < M; j++)
{
c[i][j] = 0;
for(int m = 0;m < K; m++)
{
c[i][j] = c[i][j] + a[i][m] * b[m][j];
}
}
}
for(i = 0; i < N; i++)
{
for(j = 0; j < M; j++)
{
printf("%5d",c[i][j]);
}
printf("\n");
}
}