首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C語言猜數字遊戲完整教學:從邏輯到執行結果

     編輯:關於C語言

完整原始碼(含註解)

#include 
#include 
#include 

void menu() {
    printf("\n");
    printf("**********1. 開始遊戲***************\n");
    printf("**********0. 退出遊戲***************\n");
    printf("\n");
}

int main() {
    int num = 1;
    printf("歡迎使用猜數字遊戲\n");
    while (num) {
        menu();
        printf("請選擇: ");
        scanf("%d", &num);          // 輸入 0 或 1
        switch (num) {
            case 1: {
                int n = 0, ch = 0;
                srand((unsigned int)time(NULL));  // 以時間為種子
                n = rand() % 101;                 // 0~100 隨機數
                while (1) {
                    printf("請猜一個(0-100)之間的數\n");
                    scanf("%d", &ch);
                    if (ch > n) {
                        printf("你猜大了\n");
                    } else if (ch < n) {
                        printf("你猜小了\n");
                    } else {
                        printf("恭喜你,猜對了\n");
                        break;
                    }
                }
                break;
            }
            default:
                printf("遊戲退出\n");
                break;
        }
    }
    return 0;
}

執行範例

歡迎使用猜數字遊戲
**********1. 開始遊戲***************
**********0. 退出遊戲***************
請選擇:1
請猜一個(0-100)之間的數
45
你猜大了
請猜一個(0-100)之間的數
35
你猜小了
請猜一個(0-100)之間的數
40
你猜小了
請猜一個(0-100)之間的數
43
恭喜你,猜對了
**********1. 開始遊戲***************
**********0. 退出遊戲***************
請選擇:0
遊戲退出
Press any key to continue

教學重點

  1. srand/rand 機制:time(NULL) 回傳秒數,作為種子讓每次執行序列不同。
  2. 模運算限制範圍:% 101 產生 0~100。
  3. 無限迴圈 + break:while(1) 配合猜中時 break 跳出。
  4. switch 控制流程:主選單與遊戲邏輯分離,結構清晰。

常見錯誤提醒

  • 忘記 #include <time.h> 導致 time 隱性宣告警告。
  • srand 放在迴圈內會導致同一秒內多次遊戲產生相同隨機數,應放在 case 1 區塊開頭(本碼正確)。
  • scanf 缺乏錯誤處理。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved