随机生成30道四则运算题目

题目要求:随机生成两位数的四则运算题目,支持真分数。

初次拿到题目时会无从下手,我们可以用一些浅显的话对问题进行分解,分解成一个个能够我们解决的小问题:

  1. 用函数随机生成一个数,取整,再规范位数不能超过十位数,一定要调用时间种子,以防生成伪随机数
  2. 生成运算符

         2.1用1、2、3、4分别代表加减乘除,随机数除四取余

     3.生成第三个随机数

     4.对真分数进行生成

     5.判断生成真分数还是整数

     6.进行输出

     7.循环30次

#include<iostream>
using namespace std;
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void main()
{
	int i,j;
	srand((int)time(NULL));
	for (int i = 1; i < 31; i++)
	{
		cout << "第" << i << "道题是:";
		int a = (int)j = (rand() * 100) / RAND_MAX ;
		int b = (int)j = (rand() * 100) / RAND_MAX ;//随机生成四个运算符的其中一个
		int c = b % 4;
		int d = (int)j = (rand() * 100) / RAND_MAX ;
		//真分数生成:
		int e = (int)j = (rand() * 100) / RAND_MAX ;
		int f = (int)j = (rand() * 100) / RAND_MAX ;
		double A[2];
		for (int x = 0; x < 2; x++)//生成两个真分数
		{
			if (e < f)
			{
				A[x] = e / f;
			}
			else
			{
				A[x] = f / e;
			}
		}
		float g = A[0], h = A[1];
		int m = b % 2;
		if (m = 1)//整数的四则运算
		{
			switch (c)
			{
			default:
				break;
			case 0:cout << a << "+" << d << "=" << endl; break;
			case 1:cout << a << "-" << d << "=" << endl; break;
			case 2:cout << a << "*" << d << "=" << endl; break;
			case 3:cout << a << "/" << d << "=" << endl; break;
			}
		}
		else//真分数的四则运算
		{
			switch (c)
			{
			
			case 0:cout << g << "+" << h<< "=" << endl; break;
			case 1:cout << g<< "-" << h<< "=" << endl; break;
			case 2:cout << g<< "*" << h << "=" << endl; break;
			case 3:cout << g<< "/" << h<< "=" << endl; break;
			}
		}
		

	}
	
}

  

原文地址:https://www.cnblogs.com/wanzitou/p/5247320.html