|
Time |
Memory |
| Case 1 |
1 sec |
32 MB |
| Case 2 |
1 sec |
32 MB |
| Case 3 |
1 sec |
32 MB |
| Case 4 |
1 sec |
32 MB |
| Case 5 |
1 sec |
32 MB |
Description
給定一個名為Matrix的struct,如下列所示:
Matrix
- int rowLength
- int colLength
- int values[10][10]
其中用rowLength來表示該矩陣的列數、colLength表示該矩陣的欄數、二維array values用來記錄該矩陣裡面的值
再給定主要執行程式main.c (題號.c)、以及Header檔function.h (題號.h);請試著完成Header檔中未實現的函式:Add()、Sub()、Mul()
Methods:
- void Add(Matrix m1, Matrix m2) – 將兩個矩陣相加,並使用Print()將結果印出來,當兩個矩陣的無法相加時,則印出” Uncalculable\n”
- void Sub(Matrix m1, Matrix m2) – 將兩個矩陣相減,並使用Print()將結果印出來,當兩個矩陣的無法相減時,則印出” Uncalculable\n”
- void Mul(Matrix m1, Matrix m2) – 將兩個矩陣相乘,並使用Print()將結果印出來,當兩個矩陣的無法相乘時,則印出” Uncalculable\n”
Note:
- 1 <= rowLength, colLength <= 10
- 當兩個矩陣的row長度相等,且column長度也相等,兩個矩陣才能進行加減
- 當第一個矩陣的column長度等於第二個矩陣的row長度,兩個矩陣才能進行相乘
function.c
#include "function.h"
void Add(Matrix m1, Matrix m2)
{
// TODO
}
void Sub(Matrix m1, Matrix m2)
{
// TODO
}
void Mul(Matrix m1, Matrix m2)
{
// TODO
}
void Print(Matrix m)
{
if (m.rowLength != 0 && m.colLength != 0)
{
printf("[ ");
for (int i = 0; i < m.rowLength; i++)
{
if (i != 0)
printf(" ");
for (int j = 0; j < m.colLength; j++)
{
printf("%d", m.values[i][j]);
if (j == m.colLength - 1)
{
if (i != m.rowLength - 1)
printf("\n");
}
else
printf(" ");
}
}
printf(" ]\n");
}
}
Input
Input:
輸入符合以下格式
op
r1 c1
(r1 * c1)
r2 c2
(r2 * c2)
Note:
- op字元代表運算值,’+’代表加法、’-‘代表減法、’*’代表乘法
- 無需處理輸入
Output
無需處理輸出
Partial Judge Code
13405.c
Partial Judge Header
13405.h
Tags