• 四则运算1


    1.题目要求:随机生成30道四则运算题目,其中包含真分数的四则运算

    2.设计思路:

    (1)定义结构体,包含算式的运算符、两个操作数及表示整数运算和真分数运算的值,定义该结构体的长度为30的一维数组;

    (2)利用随机数函数产生该数组的各个元素的各个值;

    (3)根据减法被减数比减数大和除法除数不为零的规则对算式进行限制;

    (4)输出算式。

    3.代码:

    #include<iostream>
    #include<ctime>
    using namespace std;
    
    struct calcu
    {
    	int fuhao;		//0,1,2,3分别代表+,-,*,/
    	int firNum;		//算式的第一个数
    	int lastNum;	//算式的第二个数
    	int intORfen;	//0,1分别代表整数运算和真分数运算
    };
    
    void main()
    {
    	srand((unsigned)time(NULL));
    	calcu num[30];
    	int i;
    	for (i = 0; i < 30; i++)
    	{
    		num[i].firNum = rand()%100;	//四则运算的第一个数
    		num[i].lastNum = rand()%100;	//四则运算的第二个数
    		num[i].fuhao = rand() % 4;	//四则运算的运算符
    		num[i].intORfen = rand() % 2;	
    		if (num[i].fuhao == 1)	//当运算符为-时
    		{
    			if (num[i].firNum < num[i].lastNum)
    			{
    				int mNum = num[i].firNum;
    				num[i].firNum = num[i].lastNum;
    				num[i].lastNum = mNum;
    			}
    		}
    		if (num[i].fuhao == 3)	//当运算符为/时
    		{
    			if (num[i].lastNum == 0)
    			{
    				i = i - 1;
    			}
    		}
    	}
    	for (i = 0; i < 30; i++)
    	{
    		//整数四则运算
    		if (num[i].intORfen == 0)	
    		{
    			switch (num[i].fuhao)
    			{
    			case 0:cout << num[i].firNum << " + " << num[i].lastNum << " = " << endl; break;
    			case 1:cout << num[i].firNum << " - " << num[i].lastNum << " = " << endl; break;
    			case 2:cout << num[i].firNum << " * " << num[i].lastNum << " = " << endl; break;
    			case 3:cout << num[i].firNum << " / " << num[i].lastNum << " = " << endl;
    			}
    		}
    		//真分数四则运算
    		else 
    		{
    			int addnum1 = rand() % 20+1;
    			int addnum2 = rand() % 20+1;
    			switch (num[i].fuhao)
    			{
    			case 0:cout << num[i].firNum << "/" << num[i].firNum + addnum1 << " + " << num[i].lastNum << "/" << num[i].lastNum + addnum2 << " = " << endl; break;
    			case 1:cout << num[i].firNum << "/" << num[i].firNum + addnum1 << " - " << num[i].lastNum << "/" << num[i].lastNum + addnum2 << " = " << endl; break;
    			case 2:cout << "(" << num[i].firNum << "/" << num[i].firNum + addnum1 << ") * (" << num[i].lastNum << "/" << num[i].lastNum + addnum2 << ") = " << endl; break;
    			case 3:cout << "(" << num[i].firNum << "/" << num[i].firNum + addnum1 << ") / (" << num[i].lastNum << "/" << num[i].lastNum + addnum2 << ") = " << endl;
    			}
    		}
    	}
    }
    

      

    4.运行结果:

  • 相关阅读:
    前端组件库
    lazyload隐藏元素不生效处理方法
    Javascript规范
    发送验证码
    flex
    css3转圈
    1.15考试总结
    [violet]蒲公英题解
    ubuntu和windows下的程序对拍
    [Poetize6] IncDec Sequence题解
  • 原文地址:https://www.cnblogs.com/pengchengwanli/p/5248065.html
Copyright © 2020-2023  润新知