该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

前几天在微博上看到24点的游戏,6 6 6

10。算了很久是在算不出来,最后我想我何不写一个小程序解决它?说做就做,我刚开始的想法很简单,就是列举4个数的所有可能的表达式组合,然后计算表达

式是否等于24,如果是的话就找到了答案。但我花了一晚的时间都没有写出程序来…第二天我改变了思路,这也是从一些答案里得到的灵感。例如

一个3 8 3 8,它的答案是 3/(3 –

8/3)。要得到24这个答案,大笨兔想如果答案的第一个数是3,那么它要加多少,减多少,乘多少,除多少才是24?这样我们就把就24的问题转换成了规

模更小的问题,我们就这样求下去,直到最后一个数字,然后判定是否是正确答案。我使用[code lang="js"]

typedef struct EXPREESSIONG{

float numbers[4];

char operation[4];

}exp;

[/code]来

保存一个表达式,numbers数组保存4个操作数,operation保存3个操作符。这里数字我使用float保存,以前使用的是int,但我发现

3/5的值是0。于是就改成了float,不过这里也会有一个问题,比如程序读入 5 5 5 1 是得不到答案的。但是它确实有答案5/(5 –

1/5)。后来调试了才发现了一个问题:如果我定义两个变量float number1,number2,分别赋值 number1 = 1.0,number2 = 5.0;然后判断 1.0/5.0 == numbers1/number2 。这个表达式的值是0(在我的cfree上是这么多)。[code lang="js"]

#include <stdio.h>

int main()

{

float number1,number2;

number1 = 1.0;number2 = 5.0;

printf("%d\n",(1.0/5.0) == (number1/number2));

return 0;

}

[/code]输出0。但是你将5.0改成2.0的话它的值又是1.所以我的程序在这里就不灵了,我不是太清楚浮点数的运算会不会使精度减少。(这是一个需要解决的问题),但是我的递归程序逻辑是正确的。程序的源码在这里:点击下载http://download.csdn.net/detail/dabentuaipangou/4409732。

(全文完)

用c语言编写24点游戏,C语言解24点游戏程序相关推荐

  1. 三菱R系列PLC程序 全部采用ST语言编写,内部使用函数块和结构体,程序思路清晰

    三菱R系列PLC程序 全部采用ST语言编写,内部使用函数块和结构体,程序思路清晰,简洁明了. 通过结构体和函数块的使用,可以使您在程序编写水平得到很大提高. ST语言是PLC后续的主流语言,是日后编程 ...

  2. c语言如何自定义运算公式,怎样用C语言编写数学公式 如何用C语言输入数学公式...

    导航:网站首页 > 怎样用C语言编写数学公式 如何用C语言输入数学公式 怎样用C语言编写数学公式 如何用C语言输入数学公式 相关问题: 匿名网友: 1.C语言有现场的常用数学函数,所在函数库为m ...

  3. c语言编写的商品管理程序,C语言编写的商品管理系统

    C语言编写的商品管理系统 商品的增删改查 #include #include #include #define K 5 int m=2; //商品种数 /*定义商品结构体*/ struct goods ...

  4. C语言编写Python包,使用C语言编写Python扩展1——Hello World

    能够使用C语言编写扩展是Python一大卖点吧,这可以将一些关键的代码使用C来写以提升程序的性能.本文是参考了Python的官方文档整理而来的,同时结合了Python2跟Python3.按照惯例现在先 ...

  5. 用c语言编写棋盘以及光标,C语言实习指导书.doc

    上海工程技术大学<高级语言程序设计>实习指导书 <高级语言程序设计实习> 实 习 指 导 书 高级语言程序设计课题组编 管理学院 2013年8月 目 录 TOC \o &quo ...

  6. 用c语言编写两整数乘积,c语言两个数相乘求积 c语言输入两个整数求乘积

    C语言中求两数相乘的程序? 思路:double类型的范围: -1.7*10(-308)-1.7*10(308),如果两个数的乘积不超过这样的精度,可以直接使用*符号进行运算. 参考代码: #inclu ...

  7. c语言编写已知xyz,C语言编程基础——xyzGame小游戏合集

    这是一个由纯C语言标准库写的控制台小游戏合集.包含井字棋.贪吃蛇.俄罗斯方块三款简单的小游戏. 初学者非常适合借助这类简单的小游戏锻炼编程技能,同时感受编程的乐趣

  8. c语言编写单词位置反转,C语言笔试题答案.docx

    C语言笔试题答案 C语言笔试题答案简答题程序的局部变量存在于(栈)中,全局变量存在于(静态区)中,动态申请数据存在于(堆)中.设有以下说明和定义:typedef union {long i; int ...

  9. c语言编写自动生成密码,c语言密码生成.doc

    c语言密码生成 计算机实习报告 一 题目分析 1 实验题目: 实现一个简单的密码生成系统.一个有效的密码由L(3<=L<=15)个小写字母(来自传统的拉丁字母集'a'...'z')组成,至 ...

  10. 用c语言编写黎曼积分计算pi,C语言实现黎曼和求定积分

    本文实例为大家分享了C语言程序实现黎曼和求定积分,供大家参考,具体内容如下 通过黎曼和解定积分既是把在xy平面中函数曲线与x轴区间区域划分成多个矩形并求它们的面积之和,矩形数量越多,得出的面积越精确. ...

最新文章

  1. change python是什么意思_回溯是什么意思?
  2. 每日一皮:单身狗的悲哀...
  3. 智能仪表参数设定c语言,智能仪表控制系统:.doc
  4. go chan 缓存与阻塞
  5. Json字符串转对象,使用ObjectMapper方式报错:no String-argument constructor/factory method
  6. c 汇编语言用标准函数代替,C与汇编的接口技术
  7. windows下MBCS和UNICODE编码的转换
  8. 服务器显示配置命令,linux查看服务器配置命令
  9. 将jar包制作成docker镜像
  10. 数据库表在join时的三种方式
  11. 【BZOJ-14492895】球队收益球队预算 最小费用最大流
  12. EM算法原理The EM Algorithm
  13. 老祖宗留下来的千古绝句,读完终身受益
  14. 城域网过渡技术之NAT64+DNS64
  15. VIRTIO-BLK-DATA-PLANE的配置使用
  16. 谷歌浏览器安装Selenium IDE插件
  17. Windows Server - 如何查看机器的开机/关机时间
  18. 关于context:property-placeholder的一个有趣现象
  19. Ghost的使用方法
  20. 网易云音乐等级快速升级 - 每天打卡听歌300首

热门文章

  1. MySQL百万级高并发网站优化
  2. 【React性能优化】 redux优化
  3. CCAI 2017 | 日本理化学研究所杉山将:弱监督机器学习的研究进展
  4. 基于Office 365 无代码工作流分析-需求基本分析!
  5. 华为网络技术培训笔记之常用网络工具(一)
  6. 最终幻想13 公布发售日期和主题曲
  7. mysql 生产实践_京东容器化MySQL生产实践
  8. itextpdf将带复选框的html_HTML基础知识
  9. 多个物体轮廓c语言提取算法,C++ opencv-3.4.1 提取不规则物体的轮廓
  10. ant批量处理word文件内容_word多个文件批量替换内容