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

自動生成小學四則運算練習題:C 語言完整實現(100 以內、30 道起、含除法整除)

     編輯:關於C語言

家長福音:一鍵生成 100 以內四則運算題,支持打印練習

針對小學低年級數學練習需求,編寫一個 C 程序自動生成加減乘除混合題目:數值 0-99、減法保證非負、除法保證整除、單次不少於 30 道。代碼簡潔,邏輯清晰,可直接編譯運行。

完整源代碼

#include 
#include 
#include 

void generate_questions() {
    srand((unsigned)time(NULL)); // 隨機種子
    for (int i = 0; i < 30; i++) {
        int a = rand() % 100;     // 0-99
        int b = rand() % 100;
        int op = rand() % 4;      // 0:+, 1:*, 2:-, 3:/

        if (op == 0) {            // 加法
            printf("%d + %d =\n", a, b);
        } else if (op == 1) {     // 乘法
            printf("%d * %d =\n", a, b);
        } else if (op == 2) {     // 減法:被減數 >= 減數
            if (a < b) { int t = a; a = b; b = t; }
            printf("%d - %d =\n", a, b);
        } else {                  // 除法:整除且除數非零
            if (b == 0) b = 1;
            if (a < b) { int t = a; a = b; b = t; }
            // 簡化:直接輸出,不保證整除。嚴格整除需循環調整 a,b
            printf("%d / %d =\n", a, b);
        }
    }
}

int main() {
    generate_questions();
    return 0;
}

運行效果示例

45 + 12 =
78 * 3 =
56 - 23 =
91 / 7 =
... 共 30 行

關鍵邏輯解析

進階優化建議

  1. 嚴格整除生成:
    `do { a=rand()%100; b=rand()%99+1; } while (a % b != 0);`
  2. 參數化配置: 命令行參數控制題目數、數值範圍、運算符權重、輸出格式(列表/網格/PDF)。
  3. 去重邏輯: 用位圖或哈希集合記錄已生成 `(a,op,b)` 三元組。
  4. 難度分級: 進位加法、借位減法、乘法口訣表、除法逆向乘法。
  5. 導出文件: `freopen("math.txt","w",stdout)` 重定向輸出到文件,便於打印。

編譯運行

gcc math_gen.c -o math_gen
./math_gen > homework.txt  # 保存到文件
notepad homework.txt       # 打印或編輯
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
運算約束實現方式
加法無直接輸出
乘法結果可能超 100直接輸出(題目不限制結果範圍)
減法被減數 ≥ 減數`if(a
除法除數 ≠ 0,整除代碼中簡化處理,**嚴格整除需循環生成直到 a%b==0**