四则运算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.运行结果:

原文地址:https://www.cnblogs.com/pengchengwanli/p/5248065.html