正解及測試資料檔案:
https://drive.google.com/file/d/18V8irNrFS7v05BfXSgTqqZxxM9Lls2XY/view?usp=sharing
本次評分共有 20 筆測試資料,每筆 1 分,每筆答案的數字必須完全正確才會給分。
作答格式不影響分數,但建議在數字與文字之間增加空格,同時進行適當換行 (\n
)。
評分標準和 hw0205(卡坦島) 應該滿類似的
各測資扣分標準:
A. 沒印顏色/顏色有印錯,規律是錯的 -2 pts
B. 顏色有印錯,但顏色規律是對的 -1 pt
C. 方塊間有多餘空白 -2 pts
D. 方塊寬或高多一格 -2 pts
E. '+' 印成 '*' -1 pt
如果扣 3 分以上不會特別附註錯誤編號
平常作業會希望大家可以問清楚,看清楚 Spec(題目) 要求。但因為期中考時間比較趕,所以容許一些錯誤
子任務說明: 判錯
子任務說明: 只有一個矩形()
子任務說明: 邊長為 1(),但
子任務說明:
子任務說明: 無其他限制
2pts for each case
我不知道為啥只有這題題目有中文。
此題有 10 筆測試,各 2 分。
助教使用此 mid05.c
進行測試。
測試分為錯誤參數值檢測與計算檢測兩部分,各有 5 筆測試。
附註一:此題我有注意到某些人使用 0
作為體重之初始值,藉以判斷是否初始化。雖然此次我沒有針對這種情況扣分,但如果要以 0
作為初始值,應該需要實作避免 setup 成 0
的呼叫,要不然體重初始值應以「不得 setup 之值」作為初始化與否之判斷。
附註二:我還看到有人直接將函式實作在 weight.h
裡面的,除非非常明確想要 static inline
直接讓編譯器優化時展開函式,否則這樣真的不太好,以後很容易遇到 symbol conflict。
附註三:雖因為我認為疊羅漢不可能疊到二三十層,或體重不可能一兩千公斤,未判斷 afford_weight
的 int64_t
與 setup_*_weight
的 uint32_t
邊界,但不是所有助教都像我一樣好說話,所以沒做某些型別轉換的同學以後最好還是要記得做。(有些人用 int32_t
記錄體重,與 uint32_t
在上界還是有差別)