题目描述
计算两个矩阵的乘积,第一个是23矩阵,第二个是32矩阵,结果为一个2*2矩阵。
输入
输入包含多组数据,先输入一个23矩阵,再输入一个32矩阵。
输出
输出两个矩阵的乘积。
样例输入 Copy
1 1 1
1 1 1
1 1
1 1
1 1
样例输出 Copy
3 3
3 3
代码
#include<stdio.h>
int main() {
int a[2][3];
int b[3][2];
while (scanf("%d", &a[0][0]) != EOF) {
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
if (i == 0 && j == 0) continue;
else scanf("%d", &a[i][j]);
}
}
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 2; j++) {
scanf("%d", &b[i][j]);
}
}
printf("%d %d\n%d %d\n", a[0][0] * b[0][0] + a[0][1] * b[1][0] + a[0][2] * b[2][0],
a[0][0] * b[0][1] + a[0][1] * b[1][1] + a[0][2] * b[2][1],
a[1][0] * b[0][0] + a[1][1] * b[1][0] + a[1][2] * b[2][0],
a[1][0] * b[0][1] + a[1][1] * b[1][1] + a[1][2] * b[2][1]);
}
return 0;
}
代码2
#include <stdio.h>
int main(){
int i,j,x;
while(scanf("%d",&x)!=EOF){
int a[2][3]={0},b[3][2]={0},c[2][2]={0};
for(i=0;i<2;i++){
for(j=0;j<3;j++){
if(i==0&&j==0) a[0][0]=x;
else scanf("%d",&a[i][j]);
}
}
for(i=0;i<3;i++){
for(j=0;j<2;j++){
scanf("%d",&b[i][j]);
}
}
for(i=0;i<2;i++){
for(j=0;j<2;j++){
for(int k=0;k<3;k++)
c[i][j]+=a[i][k]*b[k][j];
}
}
for(i=0;i<2;i++){
for(j=0;j<2;j++) {
printf("%d",c[i][j]);
if(j<2) printf(" ");
}
printf("\n");
}
}
return 0;
}