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

C 語言入門項目:猜數字遊戲完整實現

     編輯:關於C語言

專案簡介

經典控制台猜數字遊戲:程式隨機生成 1~100 的整數,玩家有 5 次機會猜測,每次提示「偏大/偏小」,猜中或用盡機會結束,支援重玩。

完整代碼(標準 C,跨平台調整)

#include 
#include 
#include 
#include 

int main() {
    int secret, guess, attempts = 5;
    char answer;
    
    srand((unsigned)time(NULL));  // 種子初始化
    
    do {
        secret = rand() % 100 + 1;  // 1~100
        attempts = 5;
        printf("\n=== 猜數字遊戲 ===\n");
        printf("你有 5 次機會,請輸入 1-100 之間的數字!\n");
        
        while (attempts > 0) {
            printf("請輸入猜測 (剩餘 %d 次): ", attempts);
            if (scanf("%d", &guess) != 1) {
                printf("輸入無效,請輸入數字!\n");
                while (getchar() != '\n');  // 清空緩衝區
                continue;
            }
            attempts--;
            
            if (guess == secret) {
                printf("恭喜!你用了 %d 次猜中了!\n", 5 - attempts);
                break;
            } else if (guess > secret) {
                printf("偏大了!");
            } else {
                printf("偏小了!");
            }
            if (attempts > 0) printf(" 還有 %d 次機會。\n", attempts);
        }
        
        if (attempts == 0 && guess != secret)
            printf("\n遊戲結束,正確答案是 %d。\n", secret);
        
        printf("再玩一局?(y/n): ");
        scanf(" %c", &answer);  // 空格跳過換行符
    } while (tolower(answer) == 'y');
    
    printf("謝謝遊玩,再見!\n");
    return 0;
}

關鍵知識點解析

  • 隨機數:srand(time(NULL)) 種子 + rand() % 100 + 1 範圍控制
  • 輸入驗證:檢查 scanf 返回值,清理緩衝區防止死循環
  • 循環控制:外層 do-while 控制重玩,內層 while 控制猜測次數
  • 大小寫兼容:tolower() 處理 'y'/'Y'

進階擴展建議

  1. 添加難度等級(調整範圍/次數)
  2. 記錄最佳成績(少猜幾次)
  3. 實現「二分法提示」輔助模式
  4. 移植到圖形介面(SDL/Qt/Win32)

這個小專案涵蓋了輸入輸出、隨機數、流程控制、防錯輸入等 C 語言核心基礎,極適合初學者練手。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved