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

《四则运算》

时间:2016-03-06 11:20:30      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:

题目要求:生成简单的四则运算,且不超过两位数,包含分数,且为真分数,随机生成30道题目。

问题细化:

      1.随机生成第一个数。

      2.随机生成加减乘除。

      3.随机生成第二个数。

      4.循环30次输出四则运算。

  具体实现:

       1.利用随机函数(rand()%(b-a+1))+a,随机生成[a,b]范围的数,设定范围为[1,100],由于题目要求四则运算范围为两位数,所以,当num_1为两位数时,直接将其输出,当生成的随机值为num_1=100时,让num_1生成真分数,具体实现为:让num_1再次生成一次作为分子,让num_11生成的范围为[num_1,99],作为分母。最后将其以(num_1/num_11)真分数的形式输出。至此第一个随机数输出完毕。

       2.利用随机函数生成num_3,使其范围为[0,100]之间的整数,然后对num_3除4取余数,判断其余数的值,若为0,则输出运算符为“+”;若为1,则输出运算符为“-”;若为2,则输出运算符为“*”;若为3,则输出运算符为“/”。至此符号已经输出。

       3.随机生成第二个随机数的方式与生成第一个随机数的方式一样。

       4.循环30次,由于循环30次时,输出的四则运算时可能相同,所以将srand((unsigned)time(NULL))时间种子,放在for循环之外,避免了生成四则运算式相同。

具体代码:

 1 #include<iostream>
 2 #include<string>
 3 #include<stdlib.h>
 4 #include<time.h>
 5 #include<iomanip>
 6 
 7 using namespace std;
 8 void main()
 9 {
10     int i;
11     srand((unsigned)time(NULL));
12     for (i = 1; i < 31; i++)
13     {
14     string fu;
15     int num_1, num_2,num_3;
16     int num_11, num_21;
17     num_1 = (rand() %(100))+1 ;//生成第一个随机数
18     if (num_1 == 100){
19         num_1 = (rand() % 99)+1;
20         num_11 = num_1 + (rand() %( 99-num_1+1));
21         cout << "(" << num_1 << "/" << num_11 << ")";
22     }
23     else cout << num_1;
24     num_3 = (rand() % 100)%4;//生成运算符
25     if (num_3 == 0) fu = +;
26     else if (num_3 == 1) fu = -;
27     else if (num_3 == 2) fu = *;
28     else fu = /;
29     cout << fu;
30     num_2 = 1+rand() % (100);//生成第二个随机数
31     if (num_2 == 100){
32         num_2 = (rand() % 99)+1;
33         num_21 = num_2 + (rand() % (99-num_2+1));
34         cout << "(" << num_2 << "/" << num_21 << ")";
35     }
36     else cout << num_2;
37     cout << "=";
38     cout << "\t";
39     cout << endl;
40     }
41 
42 } 

运算结果:

技术分享

 

至此,一个简单的四则运算生成式,就生成了,采用分割的办法化整为零,大大降低了编程的难度。

 

《四则运算》

标签:

原文地址:http://www.cnblogs.com/wangjianly/p/5246744.html

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