一個簡單的 猜數字游戲 的 C 語言例程,代碼包含詳細注釋,適合學習和練習基礎語法:
#include <stdio.h>
#include <stdlib.h>
#include <time.h> // 用于生成隨機數種子int main() {int target, guess, attempts = 0;srand(time(NULL)); // 初始化隨機數種子(基于當前時間)target = rand() % 100 + 1; // 生成1~100之間的隨機目標數字printf("歡迎來到猜數字游戲!\n");printf("我已經想好了1到100之間的一個數字,請開始猜測吧!\n");do {printf("請輸入你的猜測(1-100): ");if (scanf("%d", &guess) != 1) { // 檢查輸入是否為整數printf("輸入錯誤,請重新輸入!\n");while (getchar() != '\n'); // 清空輸入緩沖區continue;}attempts++;if (guess < target) {printf("太小了,再試試!\n");} else if (guess > target) {printf("太大了,再試試!\n");} else {printf("恭喜!你用了%d次猜中了數字%d!\n", attempts, target);break;}} while (1); // 無限循環直到猜中return 0;
}
代碼說明
-
核心邏輯
- 使用
srand(time(NULL))
初始化隨機數種子,確保每次運行生成的隨機數不同。 - 通過
rand() % 100 + 1
生成 1~100 之間的隨機數作為目標值。 - 通過
do-while
循環持續接收用戶輸入,直到猜中為止。
- 使用
-
輸入驗證
scanf("%d", &guess) != 1
檢查用戶輸入是否為整數。while (getchar() != '\n')
清空輸入緩沖區,避免非法字符干擾后續輸入。
-
反饋機制
- 根據猜測值與目標值的大小關系,給出“太大”或“太小”的提示。
- 統計猜測次數 (
attempts
),最終顯示勝利信息。
運行效果
歡迎來到猜數字游戲!
我已經想好了1到100之間的一個數字,請開始猜測吧!
請輸入你的猜測(1-100): 50
太大了,再試試!
請輸入你的猜測(1-100): 25
太小了,再試試!
請輸入你的猜測(1-100): 37
太大了,再試試!
請輸入你的猜測(1-100): 31
恭喜!你用了4次猜中了數字31!
擴展方向
-
增加難度
修改隨機數范圍(如rand() % 500 + 1
)或限制最大猜測次數。 -
添加功能
- 記錄歷史猜測并顯示。
- 詢問是否重新開始游戲。
- 積分系統(根據猜測次數計分)。
-
圖形化界面
結合第三方庫(如SDL
或raylib
)實現圖形化交互。
這個例子涵蓋了 輸入輸出、循環、條件判斷、隨機數生成 等基礎語法,適合練習 C 語言的綜合運用能力。你可以在此基礎上自由修改和擴展!