码迷,mamicode.com
首页 > 其他好文 > 详细

随机生成30道四则运算

时间:2016-03-06 17:21:23      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:

自动生成30道小学四则运算题目,要求:除了整数以外,还要支持真分数的四则运算

细化步骤:

1,  得到第一个操作数 ,系统产生一个随机数(范围包括整数和真分数)。       

2,  随机得到一个运算符

(1)用0,1,2,3分别代表+、-、*、/四则运算

(2)系统产生一个随机整数

(3)用此整数除以4取余

(4)余数有四种可能0,1,2,3,由此得到对应的运算符

3,  得到第二个操作数,系统产生一个随机数(范围包括整数和真分数)。

4,  循环输出30次四则运算表达式,设置srand((unsigned)time(NULL))时间种子,以使程序每次得到的结果都不同。

 

 

//李妍 2015.3.4
//四则运算 
#include<iostream>
#include<string>
#include<stdlib.h>
#include<time.h>
using namespace std;
void main()
{
    srand((unsigned)time(NULL));//设置时间种子 ,以使程序每次得到的结果都不同 
    for (int i = 0; i < 30; i++)
    {
       int a,b,c;
       int fenmu_1, fenmu_2;
       //生成第一个操作数
       a = (rand() %(100))+1 ;
       if (a == 100)
       {
           a = (rand() % 99)+1;
           fenmu_1 = a + (rand() %( 99-a+1));
           cout << "(" << a << "/" << fenmu_1 << ")";
        }
       else cout << a;
       
       //随机生成运算符
       char o;
       c= (rand() % 100)%4;
       if (c == 0) o = +;
       else if (c == 1) o = -;
       else if (c == 2) o = *;
       else o = /;
       cout << o;
       //生成第二个操作数
       b = 1+rand() % (100);
       if (b == 100)
       {
           b = (rand() % 99)+1;
           fenmu_2 = b + (rand() % (99-b+1));
           cout << "(" << b << "/" << fenmu_2 << ")";
        }
       else cout << b;
       cout << "=";
       cout << endl;
    }

} 

技术分享

 

 通过编写这个小程序,我明白了把问题细化具有很重要的意义,以后再遇到复杂的情况,我会把问题细化再细化,一点点去解决。

随机生成30道四则运算

标签:

原文地址:http://www.cnblogs.com/liyan-luckygirl/p/5247846.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!