練習4-6 猜數字游戲 (15 分)
猜數字游戲是令游戲機隨機產生一個100以內的正整數,用戶輸入一個數對其進行猜測,需要你編寫程序自動對其與隨機產生的被猜數進行比較,並提示大了(“Too big”),還是小了(“Too small”),相等表示猜到了。如果猜到,則結束程序。程序還要求統計猜的次數,如果1次猜出該數,提示“Bingo!”;如果3次以內猜到該數,則提示“Lucky You!”;如果超過3次但是在N(>3)次以內(包括第N次)猜到該數,則提示“Good Guess!”;如果超過N次都沒有猜到,則提示“Game Over”,並結束程序。如果在到達N次之前,用戶輸入了一個負數,也輸出“Game Over”,並結束程序。
輸入格式:
輸入第一行中給出兩個不超過100的正整數,分別是游戲機產生的隨機數、以及猜測的最大次數N。最后每行給出一個用戶的輸入,直到出現負數為止。
輸出格式:
在一行中輸出每次猜測相應的結果,直到輸出猜對的結果或“Game Over”則結束。
輸入樣例:
58 4
70
50
56
58
60
-2
輸出樣例:
Too big Too small Too small Good Guess!
思路:用if-else和break看清條件分析。
代碼如下:
#include <stdio.h> int main() { int number, n, i, m, flag=0; scanf("%d %d", &number, &n); for (i = 1; i <= n; i++) { scanf("%d", &m); if (m < 0) break; if (m > number) printf("Too big\n"); if (m < number) printf("Too small\n"); if (m == number) { if (i == 1) { flag = 1; printf("Bingo!\n"); break; } if (i == 2 || i == 3) { flag = 1; printf("Lucky You!\n"); break; } if (i > 3) { flag = 1; printf("Good Guess!\n"); break; } } } if (flag == 0) printf("Game Over\n"); return 0; }