L1 048 矩陣A乘以B

2021-08-18 03:14:15 字數 1258 閱讀 8636

l1-048. 矩陣a乘以b

給定兩個矩陣a和b,要求你計算它們的乘積矩陣ab。需要注意的是,只有規模匹配的矩陣才可以相乘。即若a有ra行、ca列,b有rb行、cb列,則只有ca與rb相等時,兩個矩陣才能相乘。

輸入格式:

輸入先後給出兩個矩陣a和b。對於每個矩陣,首先在一行中給出其行數r和列數c,隨後r行,每行給出c個整數,以1個空格分隔,且行首尾沒有多餘的空格。輸入保證兩個矩陣的r和c都是正數,並且所有整數的絕對值不超過100。

輸出格式:

若輸入的兩個矩陣的規模是匹配的,則按照輸入的格式輸出乘積矩陣ab,否則輸出「error: ca != rb」,其中ca是a的列數,rb是b的行數。

輸入樣例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

解題思路:

先判斷a的列和b的行,不同即直接輸出,相同再計算矩陣相乘。相乘時要明確矩陣相乘時內部的遍歷順序,雖然看著有很多for迴圈很可怕,但是邏輯很好理解,這點注意好了就沒啥問題了。

#include

const int maxn=50;

int a[maxn][maxn],b[maxn][maxn],ans[maxn][maxn]=;

int main()

}scanf("%d

%d",&rb,&cb);

for(int i=0;ifor(int j=0;j"%d",&b[i][j]);}}

if(ca!=rb)else}}

printf("%d

%d\n",rans,cans);

for(int i=0;ifor(int j=0;jif(j>0) printf(" ");

printf("%d",ans[i][j]);

}printf("\n");}}

return

0;}

L1 048 矩陣A乘以B

時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 陳越 給定兩個矩陣a和b,要求你計算它們的乘積矩陣ab。需要注意的是,只有規模匹配的矩陣才可以相乘。即若a有ra行 ca列,b有rb行 cb列,則只有ca與rb相等時,兩個矩陣才能相乘。輸...

L1 048 矩陣A乘以B

給定兩個矩陣a和b,要求你計算它們的乘積矩陣ab。需要注意的是,只有規模匹配的矩陣才可以相乘。即若a有ra行 ca列,b有rb行 cb列,則只有ca與rb相等時,兩個矩陣才能相乘。輸入先後給出兩個矩陣a和b。對於每個矩陣,首先在一行中給出其行數r和列數c,隨後r行,每行給出c個整數,以1個空格分隔,...

L1 048 矩陣A乘以B

時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 陳越 給定兩個矩陣a和b,要求你計算它們的乘積矩陣ab。需要注意的是,只有規模匹配的矩陣才可以相乘。即若a有ra行 ca列,b有rb行 cb列,則只有ca與rb相等時,兩個矩陣才能相乘。輸...