题目描述
给你两个矩阵A(n*k),B(k*m),请求A*B。
输入
第一行是一个整数K,表示样例的个数。 每个样例包含两个矩阵A和B。 每个矩阵的第一行是两个整数n,m,(1≤n,m≤10)表示矩阵的行和列 以后的n行,每行m个整数,每个整数的绝对值不超过100。输入保证A和B是可乘的。
输出
输出每个样例的结果矩阵,矩阵的整数之间用一个空格隔开,行尾无空格。
样例输入
2 2 2 1 1 1 1 2 1 1 1 2 2 1 1 1 1 2 2 1 1 1 0
样例输出
2 2 2 1 2 1
AC代码
#include<stdio.h>
int main(){int K;scanf("%d",&K);while(K--){int a[15][15]={};int b[15][15]={};int c[15][15]={};int n,k1,k2,m,i,j,k;scanf("%d%d",&n,&k1);for(i=1;i<=n;i++){for(j=1;j<=k1;j++){scanf("%d",&a[i][j]);}}scanf("%d%d",&k2,&m);if(k1!=k2)break;for(i=1;i<=k2;i++){for(j=1;j<=m;j++){scanf("%d",&b[i][j]);}}for(i=1;i<=n;i++){for(j=1;j<=m;j++){for(k=1;k<=k1;k++){c[i][j]+=a[i][k]*b[k][j];}}}for(i=1;i<=n;i++){for(j=1;j<=m;j++){if(j==m)printf("%d\n",c[i][j]);else printf("%d ",c[i][j]);}}}
}