题目来源:
https://acm.zzuli.edu.cn/zzuliacm/problem.php?id=1127
Description
计算两个矩阵A和B的乘积。
Input
第一行三个正整数m、p和n,0<=m,n,p<=10,表示矩阵A是m行p列,矩阵B是p行n列;
接下来的m行是矩阵A的内容,每行p个整数,用空格隔开;
最后的p行是矩阵B的内容,每行n个整数,用空格隔开。
Output
输出乘积矩阵:输出占m行,每行n个数据,以空格隔开。
Sample Input
2 3 4
1 0 1
0 0 1
1 1 1 3
4 5 6 7
8 9 1 0
Sample Output
9 10 2 3
8 9 1 0
题意描述:
输入三个正整数m、p和n,0<=m,n,p<=10,表示矩阵A是m行p列,矩阵B是p行n列
m行p列的矩阵A
p行n列的矩阵B
计算并输出这两个矩阵的乘积
计算方法如下:
概括来讲,矩阵A的第i行对应乘以矩阵B的第j列的数之和 等于结果矩阵第i行第j列的数
解题思路:
根据矩阵的计算规律写出三重for循环计算输出即可
程序代码:
1 #include<stdio.h> 2 int main() 3 { 4 int m,n,p,a[12][12],b[12][12],i,j,k,sum; 5 6 scanf("%d%d%d",&m,&p,&n); 7 for(i=1;i<=m;i++) 8 for(j=1;j<=p;j++) 9 scanf("%d",&a[i][j]); 10 for(i=1;i<=p;i++) 11 for(j=1;j<=n;j++) 12 scanf("%d",&b[i][j]); 13 14 for(i=1;i<=m;i++) { 15 for(k=1;k<=n;k++) { 16 for(sum=0,j=1;j<=p;j++) 17 sum += a[i][j]*b[j][k]; 18 if(k==1) 19 printf("%d",sum); 20 else 21 printf(" %d",sum); 22 } 23 printf(" "); 24 } 25 return 0; 26 }