針對小學低年級數學練習需求,編寫一個 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 行
| 運算 | 約束 | 實現方式 |
|---|---|---|
| 加法 | 無 | 直接輸出 |
| 乘法 | 結果可能超 100 | 直接輸出(題目不限制結果範圍) |
| 減法 | 被減數 ≥ 減數 | `if(a |
| 除法 | 除數 ≠ 0,整除 | 代碼中簡化處理,**嚴格整除需循環生成直到 a%b==0** |