定義矩陣之資料結構如下:
typedef struct matrix {
int row;
int col;
double* data;
} *MATRIX;
撰寫一C程式(如此範例), 內含下列之函數, 可自鍵盤上讀入矩陣運算式加以運算:
MATRIX readMatrix(FILE *f);
void printMatrix(MATRIX m);
MATRIX addMatrix(MATRIX x, MATRIX y);
MATRIX multiplyMatrix(MATRIX x, MATRIX y);
其中
- readMatrix(FILE* f)可自檔案f讀出MATRIX, 並傳回該矩陣. 若有錯則傳回NULL
- printMatrix(MATRIX m)可將MATRIX m印在瑩幕上
- addMatrix(MATRIX x, MATRIX y)將 x 和 y 相加,並傳回一矩陣為兩者之和. 若有錯則傳回NULL
- multiplyMatrix(MATRIX x, MATRIX y)將 x 和 y 相乘, 並傳一矩陣為兩者相乘的結果,若有錯則傳回NULL
此程式執行後, 若資料有錯則應列出錯誤訊息, 否則應產生類似下列的結果:
1.0 2.0 3.0
4.0 5.0 6.0
7.0 8.0 9.0
+
1.0 2.0 3.0
4.0 5.0 6.0
7.0 8.0 9.0
=
2.0 4.0 6.0
8.0 10.0 12.0
14.0 16.0 18.0
1.0 0.0 0.0
0.0 1.0 0.0
*
0.0 0.0
1.0 1.0
0.0 0.0
=
0.0 0.0
1.0 1.0