本專案實作一個互動式控制台程式,提供加減乘除與綜合練習模式,每輪 10 題自動評分。程式採用模組化設計:選單顯示、題目生成、答案驗證、分數統計分離於不同函式,展示結構化程式設計優良範例。
do-while)rand() + srand(time(NULL)))// 題目生成核心邏輯
int test(int n) { // n=1~4 對應運算,5=綜合
int num1 = rand() % 10, num2 = rand() % 10;
char op;
if (n == 5) n = rand() % 4 + 1;
switch (n) {
case 1: op = '+'; break;
case 2: op = '-'; break;
case 3: op = '*'; break;
case 4: op = '/'; break;
}
// 減法調整
if (op == '-' && num1 < num2) { int t=num1; num1=num2; num2=t; }
// 除法調整
if (op == '/') {
if (num2 == 0) num2 = 1;
num1 = num1 * num2; // 保證整除
}
printf("%d %c %d = ", num1, op, num2);
int ans; scanf("%d", &ans);
int correct = (op=='+')?num1+num2:(op=='-')?num1-num2:(op=='*')?num1*num2:num1/num2;
if (ans == correct) { printf("做對了!\n"); return 1; }
else { printf("做錯了!\n"); return 0; }
}
showMenu, getChoice, doExercise, test 各司其職srand(time(NULL)) 置於 test 內,確保每題隨機性(建議移至 main 僅初始化一次)switch 與選單srand 移至 main 開頭,避免同秒內重複序列此專案雖簡單,但完整展示了從需求分析、模組設計、隨機算法到使用者互動的完整開發流程,極適合 C 語言初學者作為第一個完整專案練習。