关于一个随机产生四则运算式子的问题。
时间:2011-12-16
来源:互联网
C/C++ code
1.在buildExLib里面每次产生并输出到out.txt的式子为什么是一样的?
2.如何让式子产生的更自然一些(比如四中运算均匀的出现,不要再一个式子里面只出现一种)
string randomExcs() { string expression(9,' ');//随机产生表达式长度最大为9 int left=2;//随机产生左括号位置,最大下标4 int right=left+4; expression[left]='('; expression[right]=')'; expression[(left+right)/2]=getOp(false); expression[left+1]=getOd(false); bool preIsDiv=expression[(left+right)/2]=='/'?true:false; expression[right-1]=getOd(preIsDiv); string inner(expression,left,right);//子串,括号内容 bool innerIsZero=FunOpes(inner)==0?true:false;//FunOpes计算string表示的式子,返回计算结果 expression[left-1]=getOp(innerIsZero); expression[0]=getOd(false); expression[1]=getOp(innerIsZero); expression[7]=getOp(innerIsZero); preIsDiv=expression[7]=='/'?true:false; expression[8]=getOd(preIsDiv); return expression; } char getOp(bool innerIsZero) { char ops[]={'+','-','*','/'}; return innerIsZero?ops[rand()%3]:ops[rand()%4];//判定括号内数字是否为0,为零则左括号前符号不能为除号 } char getOd(bool preIsDiv) { char ods[]={'1','2','3','4','5','6','7','8','9','0'}; return preIsDiv?ods[rand()%9]:ods[rand()%10]; } void buildExLib() { fstream outLib("out.txt",ofstream::out); for(int i=1;i<10;i++) { srand((unsigned)time(NULL)); outLib<<randomExcs()<<"\n"; } }
1.在buildExLib里面每次产生并输出到out.txt的式子为什么是一样的?
2.如何让式子产生的更自然一些(比如四中运算均匀的出现,不要再一个式子里面只出现一种)
作者: sjyzhxw 发布时间: 2011-12-16
第一个问题我懂为什么了,求教第二个问题。
作者: sjyzhxw 发布时间: 2011-12-16
值得多学习一下,谢谢了~
作者: cj9687452 发布时间: 2011-12-16
还有就是如下程序片段,outLib.open("excs.txt",ofstream::app|ofstream::out);选择了app模式但是却没能在文件里增加内容?怎么回事?
C/C++ code
C/C++ code
outLib.clear(); outLib.open("excs.txt",ofstream::app|ofstream::out); cout<<"输入追加题目数:"; cin>>amount; srand((unsigned)time(NULL)); for(int i=0;i<amount;i++) { outLib<<randomExcs()<<endl; } cout<<"题库补充完成!"<<endl; system("pause");
作者: sjyzhxw 发布时间: 2011-12-17
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28