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

150314 解决老师给二柱子出的问题 之 ver1.0

时间:2015-03-14 23:00:54      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:

一个晚上的成果,效果捉鸡,代码很乱。暂定ver1.0

//Powered by LZR! 2015.3.14
#include<iostream> #include<stdio.h> #include<stdlib.h> #include<time.h> #define random(x) (rand()%x) using namespace std; void main() { int a[200]; int num,numgroup,cc,zf,ys,fs,zj; int max,min,range; int f,m,n,i,p=0; int error=0; int x,z,y=1; int c=0,d=0; cout<<"请输入题目数:"<<endl; cin>>num; cout<<"请输入几道题一组:"<<endl; cin>>numgroup; cout<<"是否有乘除法?(请输入1或0)"<<endl; cin>>cc; if(cc==1) {cout<<"除法是否余数?(请输入1或0)"<<endl;cin>>ys;} do{ cout<<"请输入范围->下限和上限:(同样约束分子分母)"<<endl;//范围错误判断 cin>>min>>max; }while(max<min); range=max-min; cout<<"加减法是否负数?(请输入1或0)"<<endl; cin>>zf; cout<<"是否分数?(请输入1或0)"<<endl; cin>>fs; if(fs==1) { cout<<"真假分数?(请输入1或0)"<<endl; cin>>zj; } srand((int)time(0)); for(x=0;x<num;x++) { f=random(100)%4; if(cc==0) f=f%2; m=min+random(range); n=min+random(range); if(fs==1 && zj==1) { while( c==0 || d==0 || c<m || d<n) { c=min+random(range); d=min+random(range); } } if(fs==1 && zj==0) { while(c==0 || d==0 || c>m || d>n) { c=min+random(range); d=min+random(range); } } while(n==0 && f==3) //0不能做除数 n=min+random(range); if(ys==0 && cc==1 && f==3 && m%n!=0) x--;//除法余数 else { if(zf==1 && (f==0 || f==1))//加减法正负数 { z=random(100)%4; if(z==0) m=-1*m; if(z==1) n=-1*n; if(z==3) {m=-1*m;n=-1*n;} } a[x]=m*1000+f*100+n;//题目重复(非绝对,重复率极低极低) for(i=0;i<x;i++) if(a[x]==a[i]) error=1; if(error!=1) {cout<<y++<<". "; cout<<m; if(fs==1 && m%c!=0) cout<<"/"<<c; if(f==0) cout<<"+"; if(f==1) cout<<"-"; if(f==2) cout<<"*"; if(f==3) cout<<"/"; cout<<n; if(fs==1 && n%d!=0) cout<<"/"<<d; cout<<"="<<endl; p++; if(p==numgroup) {p=0;cout<<endl<<endl;} } else { error=0; x--; } } } }
技术分享

 

150314 解决老师给二柱子出的问题 之 ver1.0

标签:

原文地址:http://www.cnblogs.com/apak/p/4338359.html

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