在原有基础之上,希望加上分数的四则运算。
此次编程实现功能:30道四则运算题的编写(不重复编写)
支持整型四则运算,还有分数四则运算
可制定出题的数量
1 //开始编程时间:15:18
2 //结束编程时间:16:42
3 #include <iostream>
4 #include <time.h>
5 #include <stdlib.h>
6 using namespace std;
7 #define max 100
8 #define n 30
9 int main()
10 {
11 srand(time(NULL)); //seed
12 int num1,num2,num3,num4;
13 int i,j,m;
14 char ysf[4]={'+','-','*','/'};
15 for(m=0;m<n;m++)
16 {
17 j=rand()%2; // 生成0或1
18 if(j==0) // 整型四则运算
19 {
20 i=rand()%4; // 生成0-3的随机数
21 num1=rand() % max; // 生成0-max-1的随机数
22 num2=rand() % max;
23 switch(i){
24 case 0: //整数相加
25 cout<<num1<<ysf[i]<<num2<<"="<<endl;
26 break;
27 case 1: //整数相减
28 cout<<num1<<ysf[i]<<num2<<"="<<endl;
29 break;
30 case 2://整数相乘
31 cout<<num1<<ysf[i]<<num2<<"="<<endl;
32 break;
33 case 3: //整数相除
34 while(num2==0)
35 {//除数不为0
36 num2=rand() % max;;
37 }
38 cout<<num1<<ysf[i]<<num2<<"="<<endl;
39 break;
40 default:
41 break;}
42 }
43 else if(j==1) // 分数四则运算
44 {
45 i=rand()%4;
46 num1=rand() % max;
47 num2=rand() % max;
48 while(num2==0||num1>=num2){//分数分母不为0并且分子不能大于分母
49 num1=rand() % max;
50 num2=rand() % max;
51 }
52 num3=rand() % max;
53 num4=rand() % max;
54 while(num4==0||num3>=num4){//分数分母不为0并且分子不能大于分母
55 num3=rand() % max;
56 num4=rand() % max;
57 }
58 switch(i){
59 case 0: //分数相加
60 cout<<num1<<"/"<<num2<<ysf[i]<<num3<<"/"<<num4<<"="<<endl;
61 break;
62 case 1: //分数相减
63 cout<<num1<<"/"<<num2<<ysf[i]<<num3<<"/"<<num4<<"="<<endl;
64 break;
65 case 2: //分数相乘
66 cout<<"("<<num1<<"/"<<num2<<")"<<ysf[i]<<"("<<num3<<"/"<<num4<<")"<<"="<<endl;
67 break;
68 case 3: //分数相除
69 while(num3==0){//作为分母的分数不为0
70 num3=rand() % max;
71 while(num3>=num4){
72 num3=rand() % max;
73 num4=rand() % max;
74 }
75 }
76 cout<<"("<<num1<<"/"<<num2<<")"<<ysf[i]<<"("<<num3<<"/"<<num4<<")"<<"="<<endl;
77 break;
78 default:
79 break;
80 }
81 }
82 }
83 }
编程运行截图如下: