随机生成30道四则运算题目
题目要求:随机生成两位数的四则运算题目,支持真分数。
初次拿到题目时会无从下手,我们可以用一些浅显的话对问题进行分解,分解成一个个能够我们解决的小问题:
- 用函数随机生成一个数,取整,再规范位数不能超过十位数,一定要调用时间种子,以防生成伪随机数
- 生成运算符
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;
}
}
}
}

浙公网安备 33010602011771号