矩陣乘法(兩個矩陣相乘)

2021-08-06 04:52:38 字數 997 閱讀 9747

description

給定兩個矩陣$a$和$b$,你需要判斷它們是否可以相乘,若可以請輸出相乘後的矩陣。

input

第一行輸入乙個整數$t$,代表有$t$組測試資料。

每組資料第一行輸入兩個整數$n,m$,代表矩陣$a$的行、列。

接下來$n$行,每行輸入$m$個整數$a$。

之後一行輸入兩個整數$n,m$,代表矩陣$b$的行、列。

接下來$n$行,每行輸入$m$個整數$b$。

注:$1 <= t <= 500,1 <= n,m <= 100,1 <= m,n <= 10,1 <= $矩陣元素$<= 20$。

output

若矩陣$a、b$可以相乘,先輸出$yes$,再輸出相乘得到的矩陣。

對每行的矩陣元素,每兩個元素之間有乙個空格,最後乙個沒有空格。

反之輸出$no$。

sample input

2

2 21 1

1 12 3

1 1 1

1 1 1

2 31 1 1

1 1 1

2 21 1

1 1

sample output

yes

2 2 2

2 2 2

no

要搞清楚整個矩陣相乘的過程才能寫好迴圈。

#include#include#define max 105   

int a[max][11],b[11][max],c[max][max]; //定義三個陣列

int m,n,m,n,t;

int main()

{ int i,j;

while(scanf("%d",&t)!=eof)

{ while(t--)

{ scanf("%d%d",&n,&m); // n行m列

for(i=0;i

兩個矩陣相乘

description 給出兩個矩陣,大小分別為m n和n s,計算這兩個矩陣相乘的結果。input 輸入資料有多組,每組的第1行有三個正整數m n和s 1 m,n,s 10 表示有兩個m n和n s大小的矩陣,分別放在m行和n行。所有資料均為整數,用空格分隔。output 對於每組測試資料,輸出它...

兩個矩陣相乘演算法

本來是處理兩個矩陣的連乘求如何加括號使得中間的運算次數最少的問題,但是突然想到實現一下如何求連個矩陣連乘的演算法,就實現了一下,挺簡單的 注意程式圍繞的思想 1.兩個矩陣相乘,前乙個矩陣的列等於乙個矩陣的行 2.拿前乙個矩陣的每一行,依次的乘以後乙個矩陣的每一列 include 注意矩陣連乘需要滿足...

實現兩個矩陣相乘

題目 實現兩個矩陣相乘。想法 通過分析矩陣相乘可假設變數i,j,k控制下標,則有以下公式 c i j a i k b k j 三個變數迴圈次數 i j k 所以可以使用三次迴圈解出相乘的每個數字。說明 我將以4 4矩陣為例說明方法。include define n 4 int main printf...