标签:
自动生成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; } }
通过编写这个小程序,我明白了把问题细化具有很重要的意义,以后再遇到复杂的情况,我会把问题细化再细化,一点点去解决。
标签:
原文地址:http://www.cnblogs.com/liyan-luckygirl/p/5247846.html