这是在上一个程序上的改版,这次要求支持真分数的四则运算,这就要求判断一个数是否为真分数,具体代码如下:
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,ran3,ran4,oper; 12 for(int i=0;i<30;i++) 13 { 14 ran1=rand()%100;//产生第一个随机数 15 ran2=rand()%100;//产生第二个随机数 16 if(ran1>ran2) 17 { 18 int y=ran1; 19 ran1=ran2; 20 ran2=y; 21 } 22 if(ran2==0) 23 ran2=rand()%100; 24 ran3=rand()%100; 25 ran4=rand()%100; 26 if(ran4==0) 27 ran4=rand()%100; 28 if(ran3>ran4) 29 { 30 int y=ran3; 31 ran3=ran4; 32 ran4=y; 33 } 34 oper=rand()%4;//oper用来决定进行什么四则运算 35 switch(oper) 36 { 37 case 0: 38 cout<<"("<<ran1<<"/"<<ran2<<")"<<"+"<<"("<<ran3<<"/"<<ran4<<")"<<"="<<endl;//进行加运算 39 break; 40 case 1: 41 cout<<"("<<ran1<<"/"<<ran2<<")"<<"*"<<"("<<ran3<<"/"<<ran4<<")"<<"="<<endl;//进行乘运算 42 break; 43 case 2: 44 cout<<"("<<ran1<<"/"<<ran2<<")"<<"-"<<"("<<ran3<<"/"<<ran4<<")"<<"="<<endl;//进行减运算 45 break; 46 case 3: 47 cout<<"("<<ran1<<"/"<<ran2<<")"<<"/"<<"("<<ran3<<"/"<<ran4<<")"<<"="<<endl;//进行除运算 48 break; 49 } 50 } 51 }
运行结果如下:
这次比上次整数实现四则运算有一个不足,就是没有判断被减数与减数的大小,因为我不知道该怎么判断两个分数的大小。