C语言随机生成四则运算题目

一、基本功能

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;
}

四、运行截图

 

posted @ 2020-10-10 10:42  lilou12138  阅读(1316)  评论(0)    收藏  举报