C語言隨機生成四則運算題目
阿新 • • 發佈:2020-10-10
一、基本功能
1.隨機產生含有“+”“-”“*”“/”中兩個運算子的四則運算題目,運算數在1-100之間。
2.可以指定產生的題目的數量。
3.可指定題目的顯示方式。
4.可指定多長時間顯示正確答案。
二、實現思路
呼叫rand函式產生隨機數,不過要記得先呼叫srand(time(NULL))來啟動啟動隨機數生成器,將產生的隨機數對100取餘再加1,就控制產生的隨機數是在1-100之間的。同樣隨機產生運算子。根據輸入的題目數量來指定for迴圈的次數,通過對輸入的每行顯示數量取餘來控制每行的顯示題目數量,通過水平製表符\t來控制顯示排版,通過Sleep函式來控制多長時間顯示題目的答案。
三、實現程式碼
#include <stdio.h> #include<stdlib.h> #include <time.h> #include <windows.h> int main() { int num1, num2, num3, sum=0, result,flag; char op1, op2; int count,N,second; srand(time(NULL)); printf("請輸入想要產生題目的數目:"); scanf("%d",&N); printf("請輸入每行顯示的題目數量:"); scanf("%d",&count); printf("請輸入想要多少秒後顯示題目的答案:"); scanf("%d",&second); printf("出題中請稍等..."); for(int i=0;i<N;i++) { num1 = rand() % 100+1; num2 = rand() % 100+1; num3 = rand() % 100+1; switch (num1 % 4) { case 0: op1 = '+'; break;case 1: op1 = '-'; break; case 2: op1 = '*'; break; case 3: op1 = '/'; break; default: break; } switch (num2 % 4) { case 0: op2 = '+'; flag = 0; break; case 1: op2 = '-'; flag = 0; break; case 2: op2 = '*'; if((op1=='*')||(op1=='/')) flag = 0; else flag = 1; break; case 3: op2 = '/'; if((op1=='*')||(op1=='/')) flag = 0; else flag = 1; break; default: break; } if(sum%count==0) printf("\n"); sum++; printf("%d %c %d %c %d =",num1,op1,num2,op2,num3); if(flag==0) { result = 0; switch (op1) { case '+': result = num1+num2; break; case '-': result = num1-num2; break; case '*': result = num1*num2; break; case '/': result = num1/num2; break; default: break; } switch (op2) { case '+': result += num3; break; case '-': result -= num3; break; case '*': result *= num3; break; case '/': result /= num3; break; default: break; } } else { result = 0; switch (op2) { case '+': result = num2+num3; break; case '-': result = num2-num3; break; case '*': result = num2*num3; break; case '/': result = num2/num3; break; default: break; } switch (op1) { case '+': result = num1 + result; break; case '-': result = num1 - result; break; case '*': result = num1 * result; break; case '/': result = num1 / result; break; default: break; } } Sleep(1000*second); printf("%d \t",result); } printf("\n出題完成,感謝使用"); return 0; }
四、執行截圖