C程序设计 24点小游戏
更新时间:2023-03-18 04:20:01 阅读量: 综合文库 文档下载
- c程序设计谭浩强第五版推荐度:
- 相关推荐
1设计内容
有2、3、4、5、6、7、8、9、10、J、Q、K、A共13张牌,编一程序,判断对任意给定的4张牌,能否在进行加、减、乘、除运算后,其运算结果等于24。其中J按11计算,Q按12计算,K按13计算,A按1计算。如果能得到结果24,则输出可得到该结果的计算表达式。
若输入数据符合要求,且经过加、减、乘、除运算后,运行结果能得到24,如输入5,5,5,1,则显示可得到该结果的计算表达式,如5*(5-(1/5))。
若输入数据小于1或者大于13或者不是整数时,提示输入错误。 若输入不能运算出24的数据,如1,1,1,1,则显示经过加、减、乘、除运算后,运行结果不能得到24。
2程序设计
2.1存储结构设计
由于要储存的数据不多,主要是储存所输入的4个整数,所以采用一维数组(a[4])储存。而计算过程会出现小数,所以数据类型采用浮点型(float)。
2.2主要程序设计
程序采用穷举法,对输入的4个数进行排列,有 4!=24种。用for来循环,if来判断,算法如下。 for (i=0;i<4;i++) for (j=0;j<4;j++) if (j!=i)
for (k=0;k<4;k++) if (k!=j && k!=i) for (l=0;l<4;l++)
if (l!=i && l!=j && l!=k)
{ calculate(a[i],a[j],a[k],a[l]);}
用if来判断括号的类型,然后作出不同顺序的运算。括号有两对,主要有两种类型:一种是( ) ( )型,如(a+b)*(c+d) ;另一种是 ( ( ) )型,继续细分又有4
1
种类型,如下a*(b*(c+d)) ,(a*(b+c))*d ,a*((b+c)*d) ,((a+b)*c)*d。算法如下 if ((!(i==3 && b==0)) && (!(j==3 && c==0)) && (!(k==3 && d==0)))
{
sum1=arithmetic(i,a,b); sum2=arithmetic(j,sum1,c); sum3=arithmetic(k,sum2,d); } if (k==2) {
sum1=arithmetic(i,a,b); sum2=arithmetic(j,c,d); sum3=sum1*sum2; } if (k==3) {
sum1=arithmetic(i,a,b); sum2=arithmetic(j,c,d); if(sum2!=0) {
sum3=sum1/sum2;
} }
在输入方面,按要求,数据类型是 1 至13 的整数,符合则进行运算,不符合则重新输入。用if语句来实现,如下 if (a[i]<1 || a[i]>13 || a[i]!=int(a[i]))
在输出方面,运算结果等于 24就输出,利用调用的参数判断输出形式,有5种:(a+b)*(c+d),a*(b*(c+d)) ,(a*(b+c))*d ,a*((b+c)*d) ,((a+b)*c)*d。算法如下:
void show(int type,int i,int j,int k,float a,float b,float c,float d)
2
{
if (type==1) { if(j==4 || j==5)
{
if (k==4 || k==5)
cout< cout<<\24\ } else if (k==4 || k==5) cout< } else cout<<\ } if (type==2 || type==3) { cout<<\ } } 2.3程序流程框图 程序流程框图如图2-3所示: 3 图2-3 3程序调试 3.1测试用例 开始运行时的页面如图4-1所示: 4 图4-1 首先,测试程序能不能运算出正确的结果,输入数据6,6,6,6,出现了44组符合要求的解,如图4-2所示。 接着输入数据2,9,7,14,提示输入错误,重新输入2,7,5,13,能得到正确运行结果,如图4-2所示。 输入4,9,11,13,不能运算得到24,显示“你所输入的数,经过四则运算后,不等于24点”,如图4-3所示。 输入5,5,5,1,这组数据要运算得到24,一定会出现小数,因为只有一种运算,即5*(5 - 1 / 5),程序显示出正确结果,如图4-4所示。 3.2调试运行结果 程序第一次编译时,有19个错误,都是语法错误,修改后,能通过编译。第一次运行,并不能输出正确结果,主要原因有两个:一个是运算符号的穷举次数不对,另一个是 4个数的运算先后顺序不对。其他的错误有除数不能为零,括号的位置不对。经过修改,调试后,能运算出正确的结果。 3.1运行的结果如图: 5
正在阅读:
C程序设计 24点小游戏03-18
我是一只蚂蚁作文600字06-28
吸烟、饮酒与健康08-12
企业管理人员年度个人工作总结03-27
最喜欢那一片梅花林作文400字07-14
焊接方案01212-06
MSP430各功能模块的介绍 - 图文04-05
单片机课程设计—8个按键控制8个LED自动设定控制流水灯05-30
《妈妈睡了》教学设计(附板书)01-14
电力企业反违章工作分析及措施06-29
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 程序设计
- 小游戏
- 2016年汽车类专业课试题卷
- 最新人教版PEP小学六年级英语上册全教案含教学计划进度表
- 2018年播音主持艺考即兴评述素材
- 常见食物热量表!!要控制饮食的人注意了
- EDA练习及答案
- 2018年中国移动警务系统市场前景分析报告目录
- 《模电》习题集解析
- 智能化系统安装调试施工承包合同协议范本
- 解读《企业会计准则第2号 - 长期股权投资》随堂练习答案
- 计算机网络技术与应用测试题
- 2011年丹东市基层事业单位选聘优秀高校毕业生拟聘用人员名
- 电力线路隐蔽工程签证
- unity课程设计报告(刘卉和沈玉婷) - 图文
- 成卫医政〔2011〕77号转发全省护理工作会议材料的通知
- JAVA三大框架面试题-如果你能够撑握保证找到一份好工作
- GPS模块使用手册 - 图文
- 金融市场学2014春第一套作业
- 《朝花夕拾》相关知识
- SP-9890气相色谱仪操作步骤
- 第五期简报 - 图文