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

本文介绍了一个简单的数学练习题生成程序,使用C++编写,能够根据用户设定的参数生成包括加减乘除在内的多种类型题目,并支持分数运算。程序考虑了如是否允许负数、是否包含乘除法等细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一个晚上的成果,效果捉鸡,代码很乱。暂定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--; } } } }
 

 

日期开始时间结束时间中断时间净时间活动备注
3.1311:0012:00060min构思
3.1418:0020:3030min120min实现第一版搞定
3.1917:0017:0303min写这个表格代码3.14已发

转载于:https://www.cnblogs.com/apak/p/4338359.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值