猜數字遊戲是 C 語言初學者練習循環、隨機數、用戶交互的經典項目。本文帶你一步步構建一個功能完整的控制台猜數字遊戲,包含菜單系統、隨機數生成、輸入驗證和遊戲邏輯。
srand() 和 rand() 生成 0-100 之間的隨機數scanf() 讀取用戶輸入#include <stdio.h>
#include <Windows.h>
#include <stdlib.h>
#include <time.h>
void show_menu() {
printf("********************* 歡迎玩猜數字遊戲 ***********************\n");
printf("********************* 輸入 1 進入猜數字遊戲 ***********************\n");
printf("********************* 輸入 0 退出猜數字遊戲 ***********************\n");
}
int main() {
int choice = 1;
while (choice) {
show_menu();
printf("請選擇>:");
scanf("%d", &choice);
switch (choice) {
case 1: {
int target = 0, guess = 0;
srand((unsigned int)time(NULL)); // 以當前時間為種子
target = rand() % 101; // 生成 0-100 隨機數
while (1) {
printf("請輸入你猜的數:");
scanf("%d", &guess);
if (guess < target) {
printf("你答小了\n");
} else if (guess > target) {
printf("你答大了\n");
} else {
printf("恭喜你答對了!\n");
break;
}
}
break;
}
case 0:
printf("遊戲結束,再見!\n");
break;
default:
printf("無效選項,請重新輸入。\n");
break;
}
}
system("pause");
return 0;
}
srand((unsigned int)time(NULL)) 確保每次運行生成不同序列rand() % 101 將隨機數限制在 0-100 範圍while(1) 配合 break 實現猜對即停止show_menu() 函數,提高代碼可讀性