标题
矩阵相乘
描述
输入2×3矩阵A和3×2矩阵B各元素值,计算2×2矩阵C并输出其结果,矩阵相乘公式如下:Cmn=Amp*Bpn, Cij=k=1pAik×Bkj
时间限制
1
内存限制
10000
类别
1
输入说明
输入整形数据,如矩阵元素A={{1,2,3},{4,5,6}},B={{1,2},{3,4},{5,6}}。
输出说明
格式输出:输出矩阵A、B和A*B的结果,矩阵形式,分行分列输出,矩阵之间空一行。
输入样例
1 2 3 4 5 6
1 2 3 4 5 6
输出样例
1 2 3
4 5 6
1 2
3 4
5 6
22 28
49 64
提示
采用三重循环结构实现计算过程,数据输出格式%5d。
代码:(这种输入比较傻)
#include<stdio.h>
int main()
{ int a[2][3];
int b[3][2];
int c[2][2];
int i,j,k;
int sum;
scanf("%d %d %d %d %d %d\n",&a[0][0],&a[0][1],&a[0][2],&a[1][0],&a[1][1],&a[1][2]);
scanf("%d %d %d %d %d %d",&b[0][0],&b[0][1],&b[1][0],&b[1][1],&b[2][0],&b[2][1]);
sum = 0;
for(i=0;i<2;i++)
{
for(j=0;j<2;j++)
{
for(k=0;k<3;k++)
{
sum = sum + a[i][k]*b[k][j];
}
c[i][j] = sum;
sum = 0;
}
}
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
printf("%d ",a[i][j]);
}
printf("\n");
}
printf("\n");
for(i=0;i<3;i++)
{
for(j=0;j<2;j++)
{
printf("%d ",b[i][j]);
}
printf("\n");
}
printf("\n");
for(i=0;i<2;i++)
{
for(j=0;j<2;j++)
{
printf("%d ",c[i][j]);
}
printf("\n") ;
}
}