---
# System prepended metadata

title: CP1 HW01 補充說明
tags: ["CP1\_", HW01]

---

# HW01 補充說明

:::info
作業發出後，任何更新將會寫於此
* 2023/09/23 更新: 1.4 若使用陣列會打 7 折，使用迴圈也會打 7 折，兩個都用打 49 折，分數小數點無條件捨去至整數位。可以使用 function。
* 2023/09/23 更新：1.5 可以使用其他標頭檔，但事實上只需要 `stdio.h` 就可以完成此題了。
* 2023/09/25 更新：1.2 在遇到 0 時的情況
* 2023/09/25 更新：1.4 更新兩項規則，增加一項規則
:::

## 1.1 Print Colorful Words
- 上色只要看得出來是 "紅色" 或是 "藍色" 即可，不強制一定要指定色碼
- 上色情況必須針對 "字元" 做上色，而不是 "底色"
- 雙引號也要上色
- 文章被雙引號包住的範圍如果有五個人物的 "human name" 要上色為藍色
- 只要是五個人物的 "human name" 都要上色
- 五個人物的介紹
    - 輸出至原文章下面
    - 五人介紹分段輸出，必須要説是哪一位人物的介紹
    - 介紹內容不拘，但內容要是該位人物的介紹（可以上網找）
    - 跟介紹有關的內容必須要處理上色的情況，也就是雙引號與 "human name" 等情況
    - 每個人物各用英文介紹 50 ~ 100 words，必須要在範圍內，否則不採用
> [單字量計算工具](https://wordcounter.net)

## 1.2 Multiplication

- 是否能使用 array 或是 loop？
    > 此題過於簡單，並且尚未上到，因此禁止使用
- 輸入不在0~99之間？
    > 請直接終止程式，並輸出
    > “Wrong input, your input must between 0 ~ 99.”
- 是否會有 int32_t 無法讀入的情況
    > 此題輸入保證 int32_t 可以讀入(也就代表可能會有負數情況，需排錯)
- 各位數間是否必須輸出空格？
    > 是
- 乘數為一位數的情況？
    > 不需再顯示第二層的計算過程，直接顯示答案
    > ![](https://hackmd.io/_uploads/S1mfUTqkp.png)
- 輸出答案不為三位數？
    > 寬度須依照最長的數字進行改變，如上面為一位數的情況，下方為四位數的情況
    > ![](https://hackmd.io/_uploads/HkacvLXy6.png)
- 各位運算時出現 0 的情況 ex. 13 * 10
    > 你在加法階段仍須輸出一行 0 
    ![](https://hackmd.io/_uploads/SkcW-UQyp.png)
- 出現 0 的情況
    > 直接顯示 0
![](https://hackmd.io/_uploads/SkMjF9Ckp.png)





## 1.3 Area


- 請將輸出之 `Area` 四捨五入至小數點後兩位。
- 當 x, y 任一方之截距為 0 時，可以報錯，輸出錯誤訊息後關閉程式。也可以不報錯，但請輸出 `Area: 0` 並關閉程式。


## 1.4 Bidding System for Contract Bridge


- 叫牌選擇(The bidding choice) 的花色可以用以下方式表示:
♠: "S"(大小寫不拘)、"♠"、"Spade"(大小寫不拘)
♡: "H"(大小寫不拘)、"♡"、"Heart"(大小寫不拘)
♢: "D"(大小寫不拘)、"♢"、"Diamond"(大小寫不拘)
♣: "C"(大小寫不拘)、"♣"、"Club"(大小寫不拘)
若不是使用以上方式表示，建議可以先寄信詢問
- 不要放棄，有分段給分!
- 規則以題目為準
- (2023/09/23 更新) 若使用陣列會打 7 折，使用迴圈也會打 7 折，兩個都用打 49 折，分數小數點無條件捨去至整數位。
- (2023/09/23 更新) 可以使用 function。
- (2023/09/25 更新)
原規則：2♡(2♠): 8 ≤ HCP ≤ 10 with 6 ♡(♠) cards. If both conditions are satisfied, prefer the longer suit.
更新後規則：8 ≤ HCP ≤ 10 而且剛好 6 張 ♡(♠)，不可以混搭。如果數量相同則輸出 2♠。
原規則：
3NT: HCP < 16 and has 7 cards of a major suit (♠, ♡) with A,K,Q.
更新後規則：
HCP < 16 而且剛好有 7 張 ♠或♡，不可以混搭。
且 7 張牌中 A,K,Q 必須各有一張。
新規則：
若同時滿足多個條件，以條件前面的優先。但若該條件有特別註明，例如 "This rule is prior to xx rule."，則以該條件優先。


## 1.5 How to Write an Email to TA?

- 使用 Array 或 Loop 皆會觸發分數 x0.5
- 三種測試皆有**獨立給分**部分，可以從最簡單的那個開始寫。
- 兩分隔線長度皆為 **80**，可以接受的最大誤差範圍為 **60** ~ **100**。
- 可以使用其他標頭檔，但事實上只需要 `stdio.h` 就可以完成此題了。

## 1.6 Bonus: Makefile for Multiple files

:::info
TA Hint:

雖然 L 紀有時候會告訴大家沒事不要隨便丟一句 `STFG (Search the fxxkin' Google)`，所以我要告訴大家可以怎麼搜尋這個解決方式，也就是 `RTFM (Read the fxxkin' Manual)`！

https://www.gnu.org/software/make/manual/make.html

只要讀完這份文件，你就是比我還要會 makefile 的大師了！但如果你只想要知道如何寫這題，可以善用瀏覽器搜尋功能，只找當遇到 `error` 時要怎麼處理。

L 紀有 [在課堂上和你們說過](https://www.youtube.com/live/1By-0tOTThQ?si=JQ4r0LJAKb6anqPn&t=5516) ，要習慣讀使用手冊，相信這應該是他出這題的動機之一 ><

TA Reminder:

> - How to modify this Makefile to make b.c be built even a.c fails. 
> - You cannot switch the compiling order.

這兩件事很重要，請提出只改 Makefile 檔案的方式，而且不能改變兩個程式的編譯順序。

當你知道怎麼做時，也記得把這個技巧用在你的 Makefile 裡面！加油！

:::