給定一個名為Matrix的struct,如下列所示:
Matrix
- int rowLength
- int colLength
- int *values
rowLength表示該矩陣的列數、colLength表示該矩陣的欄數、values則是用來記錄矩陣數值的一維陣列
給定主要執行程式main.c (題號.c)、以及Header檔function.h (題號.h);請試著完成Header檔中未實現的函式:Init()、Add()、Sub()、Mul();使的在獲得任兩個矩陣後,可以計算出其相加、相減、相乘的結果,並將它們印出來(如何印出矩陣已寫在function.c中,請直接使用)
Methods:
- void Init(Matrix *m, int _rowLength, int _colLength) – 將傳入的矩陣指標m的rowLength值設定為_rowLength、colLength值設定為_colLength、並動態規劃一個長度為_rowLength * _colLength的一維陣列
- void Add(Matrix m1, Matrix m2) – 印出”Matrix 1 + Matrix 2:\n”字串,並將兩個矩陣相加,最後使用Print()將結果印出來;當兩個矩陣的無法相加時,則印出” Uncalculable\n”
- void Sub(Matrix m1, Matrix m2) – 印出”Matrix 1 - Matrix 2:\n”字串,並將兩個矩陣相減,最後使用Print()將結果印出來;當兩個矩陣的無法相減時,則印出” Uncalculable\n”
- void Mul(Matrix m1, Matrix m2) – 印出”Matrix 1 * Matrix 2:\n”字串,並將兩個矩陣相乘,最後使用Print()將結果印出來;當兩個矩陣的無法相乘時,則印出” Uncalculable\n”
Note:
function.c
輸入符合以下格式
r1 c1
(r1 * c1)
r2 c2
(r2 * c2)
輸出符合以下格式
Matrix 1 + Matrix 2:
(m1 + m2)
Matrix 1 - Matrix 2:
(m1 - m2)
Matrix 1 * Matrix 2:
(m1 * m2)