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

C語言猜數字遊戲 v2:選單函式化與亂數種子修正

     編輯:關於C語言

改進重點

  • 將選單顯示封裝為 menu() 函式。
  • 修正亂數種子:需包含 <time.h> 並呼叫 srand((unsigned)time(NULL))。
  • 修正變數初始化順序。

完整程式碼

#include 
#include 
#include 

void menu() {
    printf("***************************\n");
    printf("***********1>start*********\n");
    printf("***********2>exit *********\n");
    printf("***************************\n");
}

int main() {
    int input = 1, n = 0, ch = 0;
    printf("****歡迎使用猜數字遊戲*****\n");
    while (input) {
        menu();
        printf("請選擇>\n");
        scanf("%d", &input);
        switch (input) {
            case 1:
                srand((unsigned int)time(NULL));
                n = rand() % 101;
                while (1) {
                    printf("請輸入一個 0-100 之間的數\n");
                    scanf("%d", &ch);
                    if (ch < n) {
                        printf("你猜小了\n");
                    } else if (ch > n) {
                        printf("你猜大了\n");
                    }
                    if (ch == n) {          // 獨立 if 確保猜中即 break
                        printf("恭喜你猜對了\n");
                        break;
                    }
                }
                break;
            default:
                printf("退出遊戲\n");
                break;
        }
    }
    system("pause");
    return 0;
}

與 v1 差異比較

項目v1 (195007)v2 (本文)
選單獨立函式 print_menu()獨立函式 menu()
亂數種子正確正確
判斷結構if-else if-else兩個獨立 if + 獨立 if 判斷相等
標頭檔含 time.h含 time.h

潛在問題

  • scanf 無輸入驗證,非數字輸入會導致無限迴圈。
  • system("pause") 僅限 Windows。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved