个人项目1——自动生成四则运算
题目要求:自动生成30个小学四则表达式,要求两数在100以内。
思路:首先要生成两个100以内的随机数,然后随机产生运算符,那么该怎么产生运算符呢?可以用数字0-3来表示,因此就可以用一个随机数除以4取余,另外要注意,除数不能为0,做减法运算时要注意被减数大于减数。
具体代码如下:
1 //这是张晓菲的第一个作业,目的是自动生成30个四则运算 2 //2016/3/3 3 4 #include <iostream> 5 #include <cmath> 6 using namespace std; 7 8 //main函数 9 void main() 10 { 11 int ran1,ran2,oper; 12 for(int i=0;i<30;i++) 13 { 14 ran1=rand()%100;//产生第一个随机数 15 ran2=rand()%100;//产生第二个随机数 16 oper=rand()%4;//oper用来决定进行什么四则运算 17 switch(oper) 18 { 19 case 0: 20 cout<<ran1<<"+"<<ran2<<"="<<endl;//进行加运算 21 break; 22 case 1: 23 cout<<ran1<<"*"<<ran2<<"="<<endl;//进行乘运算 24 break; 25 case 2: 26 if(ran1<ran2) 27 { 28 int x=ran1; 29 ran1=ran2; 30 ran2=x; 31 }//判断被减数是否大于减数,如果不大于,则将两者交换位置,目的是避免出现负数 32 cout<<ran1<<"-"<<ran2<<"="<<endl; 33 break; 34 case 3: 35 if(ran2==0) 36 ran2=rand()%100;//判断除数是否为0,如果是,则重新生成 37 else 38 cout<<ran1<<"/"<<ran2<<"="<<endl;//进行除运算 39 } 40 } 41 }
测试结果如下:
总结:感觉老师上课说的一句话特别有道理,原话我记不住,但是大概意思是,理工科的学生如果有不会的题了,那就对题目进行分解,分解成几个小块,然后再一个小块一个小块的解决,编程序也是这样,如果刚拿到题的时候不会写,那就先将题目进行分解,最后分解到分解不了的时候,问题就解决了。其他的问题就是一些函数怎么用,语句怎么写的问题了,这些都是自己的问题了,解决起来不难。