码迷,mamicode.com
首页 > 其他好文 > 详细

二柱子四则运算2.0版本

时间:2018-10-08 22:14:28      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:分享   ima   name   color   break   数值   pac   ==   输出   

支持真分数的四则运算

可以自定义题目数量

源代码:

  1 #include<stdio.h>
  2 #include<iostream>
  3 #include<time.h>
  4 #include<string>
  5 using namespace std;
  6 int main()
  7 {srand( (unsigned)time( NULL ) ); 
  8 int i,k,p,v,a,b;
  9 int *s1,*s2,*s3;
 10 char n;
 11 string *sc1,*sc2,*f;
 12 string g[4]={"","","×","÷"};
 13 cout<<"请问您想输出多少题目?"<<endl;
 14 cin>>p;
 15 cout<<"请输入操作数值最大范围。"<<endl;
 16 cin>>v;
 17 cout<<"请问是否含有真分数?"<<endl;
 18 cin>>n;
 19 s1=new int[p+1];//动态数组
 20 s2=new int[p+1];
 21 s3=new int[p+1];
 22 sc1=new string[p+1];
 23 sc2=new string[p+1];
 24 f=new string[p];
 25 cout<<"以下为随机选取的题目:"<<endl;
 26 if(n==N)
 27 {
 28 for(i=1;i<=p;i++)
 29 {
 30     sc1[i]=g[rand()%4];
 31     sc2[i]=g[rand()%4];
 32     s1[i]=rand()%v+1;
 33     s2[i]=rand()%v+1;
 34     s3[i]=rand()%v+1;//随机取运算符和数,v为最大操作数。
 35         if(i==1)
 36         {cout<<s1[i]<<sc1[i]<<s2[i]<<sc2[i]<<s3[i]<<"=   ";
 37         }
 38         else
 39         {
 40             for(k=0;k<i;k++)//避免重复
 41             {
 42                 if(sc1[k]==sc1[i]&&sc2[k]==sc2[i]&&s1[k]==s1[i]&&s2[k]==s2[i]&&s3[k]==s3[i])
 43                 {
 44                     i--;
 45                     break;
 46                 }
 47                 else//比较到最后一个的时候输出题目
 48                 {
 49                     if(k==i-1)
 50                     {cout<<s1[i]<<sc1[i]<<s2[i]<<sc2[i]<<s3[i]<<"=   ";
 51                     }
 52                 }
 53             }
 54         }
 55             if(i%3==0)//每行输出3题目
 56         {
 57             cout<<endl;
 58             cout<<endl;//每行之间空一行
 59         }
 60 }
 61 }
 62 else if(n==Y)
 63     {    
 64         for(i=1;i<=p;i++)
 65         {
 66     sc1[i]=g[rand()%4];
 67     sc2[i]=g[rand()%4];
 68     s1[i]=rand()%v+1;
 69     s2[i]=rand()%v+1;
 70     s3[i]=rand()%v+1;//随机取运算符和数,v为最大操作数。for(i=1;i<=p;i++)
 71         a=rand()%100;
 72         b=rand()%3;//在三个整数确定一个为真分数
 73         if(b==1&&a>s1[i])
 74         {
 75             if(i==1)
 76             {
 77                 cout<<s1[i]<<"/"<<a<<sc1[i]<<s2[i]<<sc2[i]<<s3[i]<<"=   ";
 78             }
 79             else
 80             {
 81                 for(k=0;k<i;k++)
 82                 {
 83                     if(sc1[k]==sc1[i]&&sc2[k]==sc2[i]&&s1[k]==s1[i]&&s2[k]==s2[i]&&s3[k]==s3[i])
 84                     {
 85                         i--;
 86                         break;
 87                     }
 88                     else//比较到最后一个的时候输出题目
 89                     {
 90                         if(k==i-1)
 91                         {cout<<s1[i]<<"/"<<a<<sc1[i]<<s2[i]<<sc2[i]<<s3[i]<<"=   ";
 92                         }
 93                     }
 94                 }
 95             }
 96             if(i%3==0)//每行输出3题目
 97         {
 98             cout<<endl;
 99             cout<<endl;//每行之间空一行
100         }
101         }
102         else if(b==2&&a>s2[i])
103         {
104             if(i==1)
105             {
106                 cout<<s1[i]<<sc1[i]<<s2[i]<<"/"<<a<<sc2[i]<<s3[i]<<"=   ";
107             }
108             else
109             {
110                 for(k=0;k<i;k++)
111                 {
112                     if(sc1[k]==sc1[i]&&sc2[k]==sc2[i]&&s1[k]==s1[i]&&s2[k]==s2[i]&&s3[k]==s3[i])
113                     {
114                         i--;
115                         break;
116                     }
117                     else//比较到最后一个的时候输出题目
118                     {
119                         if(k==i-1)
120                         {cout<<s1[i]<<sc1[i]<<s2[i]<<"/"<<a<<sc2[i]<<s3[i]<<"=   ";
121                         }
122                     }
123                 }
124             }
125             if(i%3==0)//每行输出3题目
126         {
127             cout<<endl;
128             cout<<endl;//每行之间空一行
129         }
130         }
131         else if(b==3&&a>s3[i])
132         {
133             if(i==1)
134             {
135                 cout<<s1[i]<<sc1[i]<<s2[i]<<sc2[i]<<s3[i]<<"/"<<a<<"=   ";
136             }
137             else
138             {
139                 for(k=0;k<i;k++)
140                 {
141                     if(sc1[k]==sc1[i]&&sc2[k]==sc2[i]&&s1[k]==s1[i]&&s2[k]==s2[i]&&s3[k]==s3[i])
142                     {
143                         i--;
144                         break;
145                     }
146                     else//比较到最后一个的时候输出题目
147                     {
148                         if(k==i-1)
149                         {cout<<s1[i]<<sc1[i]<<s2[i]<<sc2[i]<<s3[i]<<"/"<<a<<"=   ";
150                         }
151                     }
152                 }
153             }
154             if(i%3==0)//每行输出3题目
155         {
156             cout<<endl;
157             cout<<endl;//每行之间空一行
158         }
159         }
160         else
161         {i--;
162         }
163         }
164         }
165    return 0;
166 }

运行截图:

技术分享图片技术分享图片

二柱子四则运算2.0版本

标签:分享   ima   name   color   break   数值   pac   ==   输出   

原文地址:https://www.cnblogs.com/guantianhuan/p/9757397.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!