國立屏東大學 資訊工程系 程式設計(一)
本次Turnin作業包含10個程式題,建議可以為它們建立一個資料夾,並將此次作業所有要上傳的檔案放置於該資料夾後,再使用 turnin 指令上傳作業。例如下面的操作在同學的家目錄裡建立了一個名為hw5的資料夾,並且切換到該資料夾後,針對第1題所要求的DateUK2US.c進行程式編撰:
[user@ws ~]$ mkdir hw5 [user@ws ~]$ cd hw5 [user@ws hw5]$ joe DateUK2US.c
等到我們完成DateUK2US.c的撰寫後,請自行加以編譯與執行程式,確認正確後使用 turnin▴c.hw5▴DateUK2US.c↵ 指令將加以上傳:
[user@ws c.hw5]$ turnin c.hw5 DateUK2US.c Turning in: DateUK2US.c -- ok All done. [user@ws c.hw5]$
當然,你也可以等到本次作業要求的所有題目都在hw5資料夾裡完成後,再使用 turnin▴c.hw5▴.↵ 指令一次將所有在目前資料夾中的所有檔案都加以上傳。假設你已經在hw5資料夾裡撰寫完所有題目,並且每個題目的程式檔案皆已編譯並確認執行結果正確後,我們可以使用以下指令將多餘的(不需要繳交的)檔案加以刪除後,一次將所有檔案繳交:
[user@ws c.hw5]$ ls DateUK2US.c IDAndHouseHoldReg.c IsLeapYear.c ShuttleBus.c Speed2.c WhichTriangle.c Fuel.c IPAddrValidator.c PingTungTelephone.c Speed1.c TimeInHours.c a.out [user@ws c.hw5]$ rm a.out [user@ws c.hw5]$ ls DateUK2US.c IDAndHouseHoldReg.c IsLeapYear.c ShuttleBus.c Speed2.c WhichTriangle.c Fuel.c IPAddrValidator.c PingTungTelephone.c Speed1.c TimeInHours.c [user@ws c.hw5]$ turnin c.hw5 . Turning in: ./WhichTriangle.c -- ok ./IDAndHouseHoldReg.c -- ok ./Speed1.c -- ok ./PingTungTelephone.c -- ok ./IsLeapYear.c -- ok ./TimeInHours.c -- ok ./ShuttleBus.c -- ok ./Fuel.c -- ok ./DateUK2US.c -- ok ./Speed2.c -- ok ./IPAddrValidator.c -- ok All done. [user@ws c.hw5]$
如果繳交後想要查看已繳交的檔案及相關資訊,可以輸入turnin▴-ls▴c.hw5↵ 指令,例如:
[user@ws c.hw5] c.hw5 $ turnin -ls c.hw5 .: total 44 -rw-rw----. 1 turninman turnin 207 Oct 28 02:05 DateUK2US.c -rw-rw----. 1 turninman turnin 2212 Oct 28 02:05 Fuel.c -rw-rw----. 1 turninman turnin 3403 Oct 28 02:05 IDAndHouseHoldReg.c -rw-rw----. 1 turninman turnin 731 Oct 28 02:05 IPAddrValidator.c -rw-rw----. 1 turninman turnin 418 Oct 28 02:05 IsLeapYear.c -rw-rw----. 1 turninman turnin 667 Oct 28 02:05 PingTungTelephone.c -rw-rw----. 1 turninman turnin 2129 Oct 28 02:05 ShuttleBus.c -rw-rw----. 1 turninman turnin 336 Oct 28 02:05 Speed1.c -rw-rw----. 1 turninman turnin 317 Oct 28 02:05 Speed2.c -rw-rw----. 1 turninman turnin 347 Oct 28 02:05 TimeInHours.c -rw-rw----. 1 turninman turnin 1472 Oct 28 02:05 WhichTriangle.c
註:本文使用▴及↵代表空白字元與Enter換行字元,並且將使用者輸入的部份使用灰階方式顯示。另外,出現在程式執行結果中的符號皆為半形。
世界各地的日期表達方式不盡相同,以英國和美國為例,其慣用的表示法分別為DD/MM/YYYY與MM/DD/YYYY(也就是英式的日/月/年,以及美式的月/日/年)。
請設計一個C語言程式DateUK2US.c,請使用者所輸入的英式日期,將其轉換為對應的美式日期後輸出。此題的執行結果可參考以下的畫面:
[3:23 user@ws hw] ./a.out↵
Date▴(UK):▴15/9/2021↵
Date▴(US):▴09/15/2021↵
[3:23 user@ws hw] ./a.out↵
Date▴(UK):▴01/2/1995↵
Date▴(US):▴02/01/1995↵
[3:23 user@ws hw] ./a.out↵
Date▴(UK):▴1/12/150↵
Date▴(US):▴12/01/0150↵
[3:23 user@ws hw]
請設計一個簡單的C語言程式TimeInHours.c,要求使用者輸入一個時間(包含時、分、秒),然後計算並轉換為小時後將其加以輸出。例如輸入「00:30:00」應該轉換為0.5小時。在輸入的部分,使用者會遵守 HH:MM:SS 的格式來輸入資料,其中 HH、 MM 與 SS 分別代表時、分與秒。請使用 8 個位置來輸出轉換後的結果(其中包含整數佔2位,小數點佔1位,小數點後的數值佔5位),若有不足位數(不論是整數或是小數部分)則請補0。程式的執行結果可參考以下的畫面:
[3:23 user@ws hw] ./a.out↵
Please▴input▴a▴time▴(HH:MM:SS):▴00:30:00↵
00:30:00▴=▴00.50000▴hours.↵
[3:23 user@ws hw] ./a.out↵
Please▴input▴a▴time▴(HH:MM:SS):▴12:35:05↵
12:35:05▴=▴12.58472▴hours.↵
[3:23 user@ws hw] ./a.out↵
Please▴input▴a▴time▴(HH:MM:SS):▴01:33:24↵
01:33:24▴=▴01.55667▴hours.↵
[3:23 user@ws hw]
阿財最近開始從事自行車運動,他自行設計了一款手機APP可以幫他紀錄每次戶外騎行的里程數以及時間資訊,並且透過網路將這些資訊以檔案的方式儲存在電腦系統中。他所設計用以儲存運動資訊的檔案是純文字檔,其格式如下:
現在,請你幫阿財設計兩個程式,可以幫他把這些運動資訊檔載入,並計算平均時速後輸出。
為便利起見,ws上的/home/stu/public/c2025f/c.hw5/P3裡面已提供in.1、in.2與in.3等輸入檔案可供同學測試,請自行加以取得。但要提醒同學注意,批改時不限於以上3個測試檔案。Shell指令有提供在Teams上:)。
請設計兩個簡單的C語言程式Speed1.c和Speed2.c,並將其編譯為Speed1及Speed2兩個可執行檔。兩個程式的要求分別說明如下:
1. Speed1.c:使用 I/O redirect 方式,讓程式能夠得到檔案的內容(./Speed1 < in.1 )後,計算並輸出平均速度(公里/小時)。
計算公式如下:
$$
平均速率(公里/小時)= \frac{距離(公里)}{時間(時間)}
$$
輸出格式:四捨五入到小數點後兩位(若小數部份為0時,請顯示00)
2. Speed2.c:使用I/O redirect方式接收上一個程式所輸出的平均速度(公里/小時)後,將其轉換為 英里/小時 後加以輸出。注意:Speed2.c的執行可透過管道接收來自 Speed1 的輸出,其指令如下:./Speed1 < in.1 | ./Speed2
轉換公式:
$$
平均速率(英里/小時)= \frac{平均速率(公里/小時)}{1.609}
$$
【註:1 英里 = 1.609 公里】
本題的編譯及執行結果可參考如下:
[3:23 user@ws hw] gcc▴Speed1.c▴-o▴Speed1↵
[3:23 user@ws hw] ./Speed1▴<▴in.1↵
21.28↵ #測試Speed1編譯成可執行檔後輸出是否正常
[3:23 user@ws hw] gcc▴Speed2.c▴-o▴Speed2↵
[3:23 user@ws hw] ./Speed1▴<▴in.1▴|▴./Speed2↵
Average▴Speed(kms/hr):▴21.28↵
Average▴Speed(miles/hr):▴13.23↵
[3:23 user@ws hw] ./Speed1▴<▴in.2▴|▴./Speed2↵
Average▴Speed(kms/hr):▴30.06↵
Average▴Speed(miles/hr):▴18.68↵
[3:23 user@ws hw] ./Speed1▴<▴in.3▴|▴./Speed2↵
Average▴Speed(kms/hr):▴20.00↵
Average▴Speed(miles/hr):▴12.43↵
[3:23 user@ws hw]
屏東大學提供不同校區間與屏東車站的接駁車服務,共有以下六種票種:
學生可以一次購買不超過30張車票,並可享有以下優惠:
注意:票價計算先依不同票種之票價乘以張數後,再進行折扣計算。若計算後之金額有小數,則一律無條件進位到整數。各項優惠不得合併計算,僅能擇優使用其中一項優惠 (採計最低價者)
請設計一個C語言程式 ShuttleBus.c,讓使用者輸入以下内容:
若輸入的內容超出上述的範圍則輸出“ERROR!↵”。
執行結果可參考以下的畫面:
[3:23 user@ws hw] ./a.out↵
Ticket▴Type:▴F↵
Ticket▴Quantity:▴30↵
Grade:▴1↵
Disabled:▴N↵
You▴need▴to▴pay▴$360▴for▴the▴ticket(s)▴you▴selected.↵
[3:23 user@ws hw] ./a.out↵
Ticket▴Type:▴A↵
Ticket▴Quantity:▴20↵
Grade:▴1↵
Disabled:▴N↵
You▴need▴to▴pay▴$216▴for▴the▴ticket(s)▴you▴selected.↵
[3:23 user@ws hw] ./a.out↵
Ticket▴Type:▴C↵
Ticket▴Quantity:▴30↵
Grade:▴9↵
Disabled:▴Y↵
Error!↵
[3:23 user@ws hw]
本校114年入學的其中一位同學未來會成為一名優秀的中華民國(台灣)政府官員,您需要知道如何根據身分證字號來判斷該公民是否是您轄區的居民。假設中華民國(台灣)身分證字號中有其中幾碼是有特別的含義,從左到右依序定義第一碼直到最右邊的第十碼,其中: 身分證字號共十碼,結構為: $L N_2 N_3 N_4 N_5 N_6 N_7 N_8 N_9 C_{10}$
| 代號 | 縣市 | 代號 | 縣市 | 代號 | 縣市 | 代號 | 縣市 |
|---|---|---|---|---|---|---|---|
| A | 臺北市 Taipei City | H | 桃園市 Taoyuan City | O | 新竹市 Hsinchu City | U | 花蓮縣 Hualien County |
| B | 臺中市 Taichung City | I | 嘉義市 Chiayi City | P | 雲林縣 Yunlin County | V | 臺東縣 Taitung County |
| C | 基隆市 Keelung City | J | 新竹縣 Hsinchu County | Q | 嘉義縣 Chiayi County | W | 金門縣 Kinmen County |
| D | 臺南市 Tainan City | K | 苗栗縣 Miaoli County | R | 臺南縣 Tainan County (已併入臺南市) | X | 澎湖縣 Penghu County |
| E | 高雄市 Kaohsiung City | L | 臺中縣 Taichung County (已併入臺中市) | S | 高雄縣 Kaohsiung County (已併入高雄市) | Y | 陽明山管理局 Yangmingshan Management Bureau (已廢止) |
| F | 新北市 New Taipei City | M | 南投縣 Nantou County | T | 屏東縣 Pingtung County | Z | 連江縣 Lienchiang County |
| G | 宜蘭縣 Yilan County | N | 彰化縣 Changhua County |
第一個英文字母代表初次登記的戶籍地(縣市)。在驗證時,這個字母會被轉換為一個二位數的數字($D_1 D_2$)。
| 字母 (L) | 數字代碼 ($D_1 D_2$) | 登記縣市 |
|---|---|---|
| A | 10 | 臺北市 |
| B | 11 | 臺中市 |
| C | 12 | 基隆市 |
| D | 13 | 臺南市 |
| E | 14 | 高雄市 |
| F | 15 | 新北市 |
| G | 16 | 宜蘭縣 |
| H | 17 | 桃園市 |
| I | 34 | 嘉義市 |
| J | 18 | 新竹縣 |
| K | 19 | 苗栗縣 |
| L | 20 | 臺中縣 (已併入臺中市) |
| M | 21 | 南投縣 |
| N | 22 | 彰化縣 |
| O | 35 | 新竹市 |
| P | 23 | 雲林縣 |
| Q | 24 | 嘉義縣 |
| R | 25 | 臺南縣 (已併入臺南市) |
| S | 26 | 高雄縣 (已併入高雄市) |
| T | 27 | 屏東縣 |
| U | 28 | 花蓮縣 |
| V | 29 | 臺東縣 |
| W | 32 | 金門縣 |
| X | 30 | 澎湖縣 |
| Y | 31 | 陽明山管理局 (已廢止) |
| Z | 33 | 連江縣 |
身分證字號的結構為: $L N_2 N_3 N_4 N_5 N_6 N_7 N_8 N_9 C_{10}$
我們將 $L$ 轉換為 $D_1$ 和 $D_2$,身分證字號的數字序列視為 $(D_1, D_2, N_2, N_3, N_4, N_5, N_6, N_7, N_8, N_9, C_{10})$。
其對應的權重序列 $W$ 為 $(1, 9, 8, 7, 6, 5, 4, 3, 2, 1, 1)$。
計算加權總和 $T$ (Total Sum): $$T = (D_1 \times 1) + (D_2 \times 9) + (N_2 \times 8) + (N_3 \times 7) + (N_4 \times 6) + (N_5 \times 5) + (N_6 \times 4) + (N_7 \times 3) + (N_8 \times 2) + (N_9 \times 1) + (C_{10} \times 1)$$
如果 $T$ 可以被 10 整除(即 $T \pmod{10} = 0$),則該身分證字號為有效。
範例:假設有一組身分證字號為 A123456789:
$$T = (1 \times 1) + (0 \times 9) + (1 \times 8) + (2 \times 7) + (3 \times 6) + (4 \times 5) + (5 \times 4) + (6 \times 3) + (7 \times 2) + (8 \times 1) + (9 \times 1)$$
$$T = 1 + 0 + 8 + 14 + 18 + 20 + 20 + 18 + 14 + 8 + 9$$
$$T = 130$$
$$驗證:130 \pmod{10} = 0$$ 結果為 0,表示 A123456789 是一組有效的身分證字號。
設計一個C語言的程式 IDAndHouseholdReg.c,讓使用者輸入其身分證字號,並且輸出該身分證中字母所表示的戶籍地、性別以及其身分類型。 若使用者輸入的縣市代號超出範圍,或是代表性別的數字超出範圍,則在該欄位輸出 “Input error!↵”。 同時請同學使用國家提供的公式來驗證所輸入的國民身分證統一編號是否有效,如有效則輸出 “Valid ID!”,如無效則輸出 “InValid ID!”。
本題的執行結果可參考以下的畫面:
[3:23 user@ws hw] ./a.out↵
Please▴input▴your▴ID▴number:▴A123456789↵
Household▴Registration:▴Taipei▴City↵
Gender:▴Male↵
Identity:▴Taiwan-born▴national↵
Valid▴ID!↵
[3:23 user@ws hw] ./a.out↵
Please▴input▴your▴ID▴number:▴S124578912↵
Household▴Registration:▴Kaohsiung▴County↵
Gender:▴Male↵
Identity:▴Taiwan-born▴national↵
Valid▴ID!↵
[3:23 user@ws hw] ./a.out↵
Please▴input▴your▴ID▴number:▴P290024746↵
Household▴Registration:▴Yunlin▴County↵
Gender:▴Female↵
Identity:▴Naturalized▴from▴mainland▴China↵
InValid▴ID!↵
[3:23 user@ws hw] ./a.out↵
Please▴input▴your▴ID▴number:▴T129935032↵
Household▴Registration:▴Pingtung▴County↵
Gender:▴Male↵
Identity:▴Taiwan-born▴national↵
InValid▴ID!↵
[3:23 user@ws hw] ./a.out↵
Please▴input▴your▴ID▴number:▴Y260045278↵
Household▴Registration:▴Yangmingshan▴Management▴Bureau↵
Gender:▴Female↵
Identity:▴Naturalized▴former▴foreign▴national↵
Valid▴ID!↵
[3:23 user@ws hw]
IPv4 是由4段0-255的整數所組成,例如:國立屏東大學官網的IP網址為 “120.118.118.222”。假設目前屏東大學的IP網段為120.118.(0~255).(0~255),請同學設計一個C語言的程式 IPAddrValidator.c,讓使用者輸入一段IP,並且判斷該IP是否正確地由4段0-255的整數所組成,同時能夠判斷此IP位址是否位於國立屏東大學的網段內。執行結果可參考以下的畫面:
[3:23 user@ws hw] ./a.out↵
Please▴input▴an▴IP▴address:▴120.118.118.222↵
The▴IP▴address▴120.118.118.222▴is▴valid.↵
The▴IP▴address▴is▴in▴NPTU▴campus.↵
[3:23 user@ws hw] ./a.out↵
Please▴input▴an▴IP▴address:▴1.1.1.1↵
The▴IP▴address▴1.1.1.1▴is▴valid.↵
The▴IP▴address▴is▴not▴in▴NPTU▴campus.↵
[3:23 user@ws hw] ./a.out↵
Please▴input▴an▴IP▴address:▴255.255.255.255↵
The▴IP▴address▴255.255.255.255▴is▴valid.↵
The▴IP▴address▴is▴not▴in▴NPTU▴campus.↵
[3:23 user@ws hw] ./a.out↵
Please▴input▴an▴IP▴address:▴0.0.0.0↵
The▴IP▴address▴0.0.0.0▴is▴valid.↵
The▴IP▴address▴is▴not▴in▴NPTU▴campus.↵
[3:23 user@ws hw] ./a.out↵
Please▴input▴an▴IP▴address:▴-123.-123.-123.-123↵
Invalid▴IP▴address.↵
[3:23 user@ws hw]
三體人的艦隊已經從距離地球 4 光年的半人馬座 Alpha 星出發前往地球。假設他們的飛船最多裝載了 8000 公噸的高能燃料,剛好足夠支撐前往地球的行程。隨著航行的進展,燃料逐漸消耗。如果燃料剩餘低於 10%,艦隊必須儘快補充燃料,否則將面臨失去動力來源的危險。 以下是燃料剩餘的的等級以及飛船儀表板上要顯示的文字:
| 燃料剩餘百分比 | 儀表板上要顯示的文字 |
|---|---|
| 75%以上 | Fuel is sufficient, no need to worry. |
| 74%~50% | More than 50% of fuel remains, you can continue the journey with peace of mind. |
| 49%~25% | Less than half of the fuel remains, pay attention to endurance. |
| 24%~10% | Less than 25% of fuel remains, it's recommended to start looking for refueling points. |
| 9%~0% | Less than 10% of fuel remains, please find fuel as soon as possible! |
除了燃料儀表板外,三體人有通訊設備可以聯繫質子來監控人類的科技發展水平,如果質子告知三體人地球的科技發展已經能夠建造行星發動機的水準,則三體人預計地球聯邦將會實施流浪地球計畫,向銀河更深處逃去,遠離三體人的入侵。以下是如果地球人的科技水平達到某個階段,則三體人需要多少額外燃料才能追上對方。 以下是地球聯邦的科技水準等級以及質子通知三體艦隊需要額外準備多少燃料。
| 地球科技水準 | 額外燃料百分比 |
|---|---|
| Level0 | 0% |
| Level1 | 25% |
| Level2 | 35% |
| Level3 | 45% |
| Level4 | 55% |
請為三體人設計一個C語言的程式Fuel.c,讓三體人輸入當前燃料的公噸數(皆為整數),並輸入地球聯邦的科技水平等級,並輸出其燃料剩餘百分比以及相對應的儀表板顯示文字。燃料剩餘百分比之計算請無條件捨去到整數位。如果三體人輸入的數字大於所能裝載燃料的容量或是小於0,或是科技水平等級超出預設範圍,則輸出“ERROR!↵”,並且根據目前地球科技水準,計算出需要多少燃料才能追上流浪地球,剩餘燃料請無條件捨去到整數位。 計算公式如下: $$所需燃料 = (8000 \times \frac{(100+額外燃料百分比)}{100} - 剩餘燃料)$$
若有使用浮點數運算的需求,請使用 double 形態。
其執行結果可參考以下的畫面:
[3:23 user@ws hw] ./a.out↵
How▴much▴is▴the▴fuel▴left(unit:▴ton):▴2660↵
Remaining▴fuel:▴33%↵
Less▴than▴half▴of▴the▴fuel▴remains,▴pay▴attention▴to▴endurance.↵
Please▴input▴the▴technology▴level(0~4):▴0↵
The▴fuel▴needed▴to▴catch▴up▴with▴the▴wandering▴Earth:▴5340▴ton.↵
[3:23 user@ws hw] ./a.out↵
How▴much▴is▴the▴fuel▴left(unit:▴ton):▴1340↵
Remaining▴fuel:▴16%↵
Less▴than▴25%▴of▴fuel▴remains,▴it's▴recommended▴to▴start▴looking▴for▴refueling▴points.↵
Please▴input▴the▴technology▴level(0~4):▴3↵
The▴fuel▴needed▴to▴catch▴up▴with▴the▴wandering▴Earth:▴10260▴ton.↵
[3:23 user@ws hw] ./a.out↵
How▴much▴is▴the▴fuel▴left(unit:▴ton):▴5960↵
Remaining▴fuel:▴74%↵
More▴than▴50%▴of▴fuel▴remains,▴you▴can▴continue▴the▴journey▴with▴peace▴of▴mind.↵
Please▴input▴the▴technology▴level(0~4):▴2↵
The▴fuel▴needed▴to▴catch▴up▴with▴the▴wandering▴Earth:▴4840▴ton.↵
[3:23 user@ws hw] ./a.out↵
How▴much▴is▴the▴fuel▴left(unit:▴ton):▴-1↵
ERROR!↵
[3:23 user@ws hw] ./a.out↵
How▴much▴is▴the▴fuel▴left(unit:▴ton):▴0↵
Remaining▴fuel:▴0%↵
Less▴than▴10%▴of▴fuel▴remains,▴please▴find▴fuel▴as▴soon▴as▴possible!↵
Please▴input▴the▴technology▴level(0~4):▴-1↵
ERROR!↵
[3:23 user@ws hw]
判斷一個年份是否是閏年,我們可以透過一個口訣判斷:“四年一閏,逢百不閏,四百又閏”。
設計一個C語言的程式 IsLeapYear.c,讓使用者輸入一個正整數的年份,並輸出該年分是否是閏年。其執行結果可參考以下的畫面:
[3:23 user@ws hw] ./a.out↵
Please▴input▴a▴year:▴1988↵
Leap▴Year↵
[3:23 user@ws hw] ./a.out↵
Please▴input▴a▴year:▴4↵
Leap▴Year↵
[3:23 user@ws hw] ./a.out↵
Please▴input▴a▴year:▴100↵
Not▴a▴Leap▴Year↵
[3:23 user@ws hw] ./a.out↵
Please▴input▴a▴year:▴400↵
Leap▴Year↵
[3:23 user@ws hw] ./a.out↵
Please▴input▴a▴year:▴0↵
ERROR!↵
設計一個C語言的程式 WhichTriangle.c,讓使用者輸入三角形的三個邊長(皆為整數),判斷三個正整數所圍成的三角形是哪種三角形。
其中,程式需能斷出辨別出三種情況。假設三角形三個邊長分別為a,b,c,且c為最長的邊,可使用以下公式進行判斷:
若使用者輸入的三個邊長無法構成三角形($a+b <= c$),就輸出訊息 “Not a Triangle” 以提示使用者
其執行結果可參考以下的畫面:
[3:23 user@ws hw] ./a.out↵
Please▴input▴a▴triangle's▴3▴sides(a,b,c):▴3,6,8↵
Obtuse▴Triangle!↵
[3:23 user@ws hw] ./a.out↵
Please▴input▴a▴triangle's▴3▴sides(a,b,c):▴3,4,5↵
Right▴Triangle!↵
[3:23 user@ws hw] ./a.out↵
Please▴input▴a▴triangle's▴3▴sides(a,b,c):▴7,7,4↵
Acute▴Triangle!↵
[3:23 user@ws hw] ./a.out↵
Please▴input▴a▴triangle's▴3▴sides(a,b,c):▴25,12,5↵
Not▴a▴Triangle↵
[3:23 user@ws hw]
某電信公司的行動電話通話費有以下三種計費方式:
方案1. 0月租費,每月費用以實際通話時間算,每分鐘8元。 方案2. 月租費500元,包含每個月免費通話時間100分鐘(含);若通過時間超過100分鐘,除了收取月租費500元外,超過100分鐘的部份,每分鐘另外加收3元。 方案3. 月租費800元,每個月不限通話時間(吃到飽方案)。
請設計一個程式,用以計算電話費。使用者必須輸入其所使用的方案(1-3),並輸入該月份的通話時間(以分鐘為單位),計算該月的通話費後加以輸出。請參考以下的執行結果:
[3:23 user@ws hw] ./a.out↵
Please▴enter▴the▴method:▴1↵
Please▴enter▴the▴minutes:▴40↵
Total▴money:▴320↵
[3:23 user@ws hw] ./a.out↵
Please▴enter▴the▴method:▴2↵
Please▴enter▴the▴minutes:▴170↵
Total▴money:▴710↵
[3:23 user@ws hw] ./a.out↵
Please▴enter▴the▴method:▴3↵
Please▴enter▴the▴minutes:▴200↵
Total▴money:▴800↵
[3:23 user@ws hw] ./a.out↵
Please▴enter▴the▴method:▴5↵
Please▴enter▴the▴minutes:▴99↵
Invalid▴method↵
[3:23 user@ws hw]