# 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 裡面!加油! :::