1127 矩阵乘积

题目来源:
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("\n");
24     }
25     return 0;
26  } 

 

posted @ 2017-05-04 00:04  Reqaw  阅读(445)  评论(0编辑  收藏  举报