地特四等申論題
109年
[資訊處理] 程式設計概要
第 三 題
三、請使用 C 程式語言撰寫一猜數字遊戲程式,此程式必須滿足下列規定:(25分)
撰寫一函式 int Randomize(int n),可回傳一個隨機產生介於 1 到 n 間(包含 1 與 n)的正整數,此正整數即為此遊戲的答案。
利用上述函式實作一猜數字遊戲,此遊戲開始時先讓使用者輸入此猜數字遊戲的最大值,程式須確認使用者所輸入的數值必須大於 20。
使用者每次猜答時,程式必須顯示出是第幾次的猜答。
使用者每次輸入後,程式必須顯示結果,如果猜錯時,程式必須依使用者的輸入值縮小範圍;當猜對時,就顯示『恭喜你猜對了!』。
當使用者猜答次數超過 10 次仍未猜中答案時,程式就必須結束使用者的猜答,並顯示出正確答案。
程式執行範例如下:
請輸入答案的可能最大值(至少必須大於20):15
輸入錯誤!15沒有大於20,請重新輸入!
請輸入答案的可能最大值(至少必須大於20):30
第1次猜答:15
結果為:猜錯了,答案介於 15 與 30 之間!
第2次猜答:23
結果為:猜錯了,答案介於 15 與 23 之間!
第3次猜答:19
結果為:猜錯了,答案介於 15 與 19 之間!
第4次猜答:17
結果為:猜錯了,答案介於 17 與 19 之間!
第5次猜答:18
結果為:恭喜你猜對了!
請按任意鍵繼續 . . .
📝 此題為申論題
思路引導 VIP
看到本題,應先確立亂數產生機制(需引入 stdlib.h 與 time.h,並以時間作為亂數種子)。其次,運用 do-while 迴圈處理輸入驗證(確保 n > 20),並以 for 迴圈控制最多 10 次的猜測邏輯,過程中需利用條件判斷式動態更新並輸出猜測的上下界範圍。
🤖
AI 詳解
AI 專屬家教
【解題關鍵】本題測驗 C 語言的亂數生成(rand() 與 srand())、防呆輸入驗證(do-while 迴圈)、以及控制流程(動態更新變數範圍與次數限制)的綜合實作能力。
【程式碼實作】
▼ 還有更多解析內容