随机生成四则运算(2)

#include<iostream>
#include<ctime>
#include<stdlib.h>
#include<string>
#define N 30
using namespace std;
int main()
{
    int num1, num2, sym, tscore, asmd, brackets, min, max, negativenum, remainder;
    string sym2;
    srand((int)time(NULL));    //---------做时间种子
    cout << "是否包含真分数(0表示否,1表示是)" << endl;
    cin >> tscore;
    cout << "四则运算包含哪些(1表示加减,2表示乘除,3表示加减乘除)" << endl;
    cin >> asmd;
    //cout << "是否包含括号(0表示否,1表示是)" << endl;
    //cin >> brackets;
    cout << "请输入取值范围(最小数 最大数)" << endl;
    cin >> min>>max;
    //cout << "加减有无负数,(1表示有,0表示没有)" << endl;
    //cin >> negativenum;
    //cout << "除法有无余数,(1表示有,0表示没有)" << endl;
    //cin >> remainder;

    
        srand((int)time(NULL));    //---------做时间种子
    for (int i = 1; i < N; i++)
    {

        if (tscore == 0)//---整数
        {
            num1 = -rand() % (max - min + 1) + max;
            do
            {
                num2 = (-rand() % (max - min + 1) + max);
            } while (num2 == 0);
        }
        int a, b, c, d;//-------真分数
        if (tscore == 1)
            
        {
            
            string num3, num4;
            a = (-rand() % (max - min + 1) + max);//-----产生第一个真分数的分子分母
            do
            {
                b = (-rand() % (max - min + 1) + max);
            } while (b == 0);
            c = (-rand() % (max - min + 1) + max);//-----产生第二个真分数的分子分母
            do
            {
                d = (-rand() % (max - min + 1) + max);
            } while (d == 0);
        }
        if (asmd == 1)
        {
            sym = rand() % 2;
            if (sym == 0)
                sym2 = "+";
            if (sym == 1)
                sym2 = "-";
        }
        if (asmd == 2)
        {
            sym = rand() % 2;
            if (sym == 0)
                sym2 = "*";
            if (sym == 1)
                sym2 = "/";
        }
            if (asmd == 3)
            {
                sym = rand() % 4;
                if (sym == 0)
                    sym2 = "+";
                if (sym == 1)
                    sym2 = "-";
                if (sym == 2)
                    sym2 = "*";
                if (sym == 3)
                    sym2 = "/";
            }
            if (tscore == 0)
            {
                cout << num1 << sym2 << num2 << "=" << endl;
            }
            if (tscore == 1)
            {
                
                cout << a << "/" << num2 << "=" << endl;
            }
        

    }
    return 0;
}

 

  

整数运算
除数不等于0
真分数运算
分母 除数不等于0

一题目避免重复
int【num1】【sym】【num2】
循环核对

二可定制(打印方式、数量)


三可控制参数

是否有乘除法
代表加减addsub
乘除muldiv
1代表加减
2代表乘除
3代表加减乘除

是否有括号
算式=(算式)+(算式)
数值范围
a = -rand() % (max-min+1)+max;

加减有无负数
除法有无余数
判断

你可能感兴趣的:(随机生成四则运算(2))