程序:随机生成30道四则运算题

设计思路:

1.利用rand()随机生成第一个数

2.随机生成四则运算符号

3.利用rand()随机生成第二个数

4.输出

解决问题:

如何产生随机数?

1.学习生成随机数函数

2.控制生成数范围

3.输出

如何随机生成运算符?
1.随机生成1-4的数

2.用1-4分别代表四则运算符号

3.用switch语句输出符号

如何解决真分数的输出?

1.随机生成的分子小于随机生成的分母

如何解决整数和真分数同时输出?

1.设置变量opt

2.利用随机函数生成1-2的数作为opt的值

3.利用if语句,当opt=1时输出整数,当opt=2时输出真分数

代码:

 1 #include <iostream>
 2 #include <time.h>
 3 using namespace std;
 4 
 5 void main()
 6 { 
 7     srand((int)time(NULL));     //每次执行种子不同,生成不同的随机数
 8     int a, b, c, d, e, i, mark,opt;
 9     for (i = 0; i < 30; i++)
10     {
11         opt = 1 + rand() % 2;//随机生成1或者2来表示整数和真分数
12         a = 1 + rand() % 100;//将1到100内的数随机赋予a
13         b = 1 + rand() % 100;//将1到100内的数随机赋予b
14         c = 1 + rand() % 100;//将1到100内的数随机赋予c
15         d = 1 + rand() % 100;//将1到100内的数随机赋予d
16         if (opt = 1)
17         {
18             mark = 1 + rand() % 4;//随机生成1-4来分别表示四个运算符
19             cout << a;
20             switch (mark)
21             {
22             case 1:cout << "+"; break;
23             case 2:cout << "-"; break;
24             case 3:cout << "×"; break;
25             case 4:cout << "÷"; break;
26             }
27             cout << b << "=" << endl;
28         }
29         if (opt = 2)
30         {
31             if (a > b)
32             {
33                 e = a;
34                 a = b;
35                 b = e;
36             }
37             cout << "(" << a << "/" << b <<")";
38             mark = 1 + rand() % 4;
39             switch (mark)
40             {
41             case 1:cout << "+"; break;
42             case 2:cout << "-"; break;
43             case 3:cout << "×"; break;
44             case 4:cout << "÷"; break;
45             }
46             if (c > d)
47             {
48                 e = c;
49                 c = d;
50                 d = e;
51             }
52             cout << "(" << c << "/" << d << ")" <<"="<< endl;
53         }
54         
55     }
56 }

 

posted @ 2016-03-06 14:09  上进生_go  阅读(460)  评论(3编辑  收藏  举报