首页 > 其他 > 详细

PTA 矩阵A乘以B

时间:2021-04-03 13:13:09      阅读:17      评论:0      收藏:0      [点我收藏+]

给定两个矩阵A和B,要求你计算它们的乘积矩阵AB。需要注意的是,只有规模匹配的矩阵才可以相乘。即若A有R?a??行、C?a??列,B有R?b??行、C?b??列,则只有C?a??与R?b??相等时,两个矩阵才能相乘。

输入格式:

输入先后给出两个矩阵A和B。对于每个矩阵,首先在一行中给出其行数R和列数C,随后R行,每行给出C个整数,以1个空格分隔,且行首尾没有多余的空格。输入保证两个矩阵的R和C都是正数,并且所有整数的绝对值不超过100。

输出格式:

若输入的两个矩阵的规模是匹配的,则按照输入的格式输出乘积矩阵AB,否则输出Error: Ca != Rb,其中CaA的列数,RbB的行数。

输入样例1:

2 3
1 2 3
4 5 6
3 4
7 8 9 0
-1 -2 -3 -4
5 6 7 8
 

输出样例1:

2 4
20 22 24 16
53 58 63 28
 

输入样例2:

3 2
38 26
43 -5
0 17
3 2
-11 57
99 68
81 72
 

输出样例2:

Error: 2 != 3
 
 
 1 #include<stdio.h>
 2 int main(){
 3     int a[100][100],b[100][100],ra,ca,rb,cb,i,j,k,sum=0,f=0;
 4     scanf("%d %d",&ra,&ca);
 5     for(i=0;i<ra;i++){
 6         for(j=0;j<ca;j++){
 7             scanf("%d",&a[i][j]);
 8         }
 9     }
10     scanf("%d %d",&rb,&cb);
11     for(i=0;i<rb;i++){
12         for(j=0;j<cb;j++){
13             scanf("%d",&b[i][j]);
14         }
15     }
16     if(ca==rb){
17         printf("%d %d\n",ra,cb);
18         for(i=0;i<ra;i++){
19             for(j=0;j<cb;j++){
20                 sum=0;
21                 for(k=0;k<ca;k++){
22                     sum+=a[i][k]*b[k][j];
23                 }
24                 if(!f) printf("%d",sum);
25                 else    printf(" %d",sum); f++;
26             }
27             f=0;
28             printf("\n");
29         } 
30     }else{
31         printf("Error: %d != %d\n",ca,rb);
32     }
33     return 0;
34 }

 

PTA 矩阵A乘以B

原文:https://www.cnblogs.com/8023yyl/p/14613422.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!