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

前几天在微博上看到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. 使用c语言测试大端和小端,C语言*符号使用及大端法小端法测试

    工具:Microsoft Visual C++ 6.0 例子: int a = 1; int* b = &a; C语言规定a表示存储单元中的数据,&a表示存储单元的地址,b存储的就是a ...

  2. c语言u64数据类型打印,小谈C语言中常见数据类型在32及64位机上的使用

    1.概述 C语言有一些非常基本的数据类型,正是这些基本类型让我们可以延伸了无限的用户自定义类型,本文主要介绍了 int, size_t, time_t, long, long long int 等基本 ...

  3. 【嵌入式基础小知识】详解单片机中的程序和变量是如何分布的以及一些注意事项

    "我固然不是了不起的跑步者,而是处于极为平凡的--毋宁说是凡庸的--水准.然而这个问题根本不重要.我超越了昨天的自己,哪怕只是那么一丁点儿,才更为重要.在长跑中,如果说有什么必须战胜的对手, ...

  4. C语言求1元2次方程的解,一元二次方程求解程序完整代码

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 下面的代码是我刚才无聊写的.对于简单的一元多次方程的迭代 #include #include #include #define MAXTIMES 5 ty ...

  5. 《Android游戏开发详解》一3.6 图形

    本节书摘来异步社区<Android游戏开发详解>一书中的第3章,第3.6节,作者: [美]Jonathan S. Harbour 译者: 李强 责编: 陈冀康,更多章节内容可以访问云栖社区 ...

  6. 《Android游戏开发详解》——第3章,第3.6节图形

    本节书摘来自异步社区<Android游戏开发详解>一书中的第3章,第3.6节图形,作者 [美]Jonathan S. Harbour,更多章节内容可以访问云栖社区"异步社区&qu ...

  7. 24点小游戏(C语言实现)

    一.题目分析 题目要求: 24点小游戏是经典的纸牌益智游戏. 常见游戏规则如下: 从扑克牌中任意取出四张牌,对牌面上的四个数字使用任意的加减乘除(每张牌牌面上的数字都只能使用一次),第一个能得到24者 ...

  8. c语言纸牌小游戏制作,C语言实现纸牌24点小游戏

    本文实例为大家分享了C语言纸牌24点小游戏的具体实现代码,供大家参考,具体内容如下 此程序参考C语言实现经典24点纸牌益智游戏,并做出一些改进. 一.题目要求: 24点游戏规则: 从扑克中每次取出4张 ...

  9. c语言算24点答案,C语言-纸牌计算24点小游戏

    C语言实现纸牌计算24点小游戏 利用系统时间设定随机种子生成4个随机数,并对4个数字之间的运算次序以及运算符号进行枚举,从而计算判断是否能得出24,以达到程序目的.程序主要功能已完成,目前还有部分细节 ...

  10. C语言-纸牌计算24点小游戏

    C语言实现纸牌计算24点小游戏 利用系统时间设定随机种子生成4个随机数,并对4个数字之间的运算次序以及运算符号进行枚举,从而计算判断是否能得出24,以达到程序目的.程序主要功能已完成,目前还有部分细节 ...

最新文章

  1. 找不到完美数据科学家?你还可以组建一支数据科学梦之队
  2. 空间映射网络--Spatial Transformer Networks
  3. aptana手动配置python环境_Aptana Studio 3中通过Auto Config配置PyDev中Python出错
  4. [征询意见][投票]先集中力量做好一个开源项目
  5. python为什么那么难学_Python入门很难吗? 为什么越来越多的人都学Python?
  6. .com域名一定要实名认证吗
  7. Spring-依赖注入
  8. case when then else多个条件_CentOS「linux」学习笔记24:if和case多个条件判断
  9. 终于不会看不懂LSTM了
  10. Linguistic Data Consortium (LDC)
  11. 【UVa】1600 Patrol Robot(dfs)
  12. Google 要放弃 Android 了?
  13. Resharper F12下载dll源码
  14. IDEIDEA 如何搭建maven 安装、下载、配置A 如何搭建maven 安装、下载、配置
  15. thinkphp 下实现繁简体汉字转换
  16. 战旗三国一直显示连接服务器,原来战棋三国2可以这么玩,新手玩家可别错过了!...
  17. 第三部分 :简单句的补充(复合句/定语从句)
  18. 文件服务器和nas区别,nas和ftp服务器的区别
  19. 股权-公司治理的至高点,如何合理运用股权(融人、融资、融市场) 张明若
  20. css固定图片大小 vue_css3 实现图片等比例放大与缩小

热门文章

  1. IntelliJ IDEA创建JavaWeb项目
  2. 数学:给你长度1~n的线段 组成三角形最长边长度不超过你的n三角形有多少个
  3. 为什么visual的联机浏览功能不能用_Minecraft非正版联机教程
  4. (转)Dinkelbach算法(01二分规划更优解法)
  5. mysql 关闭严格_mysql关闭严格模式
  6. 《C++(三)--多线程》
  7. java编辑遗忘曲线代码_用jsp写出记忆曲线的表格(用学习新概念英语做例子)
  8. TCP端口扫描[Python3.5]
  9. java 接收soap_2.技巧: 用 JAXM 发送和接收 SOAP 消息—Java API 使许多手工生成和发送消息方面必需的步骤自动化...
  10. Lattice - 规划模块 1.采样轨迹 2.计算轨迹cost 3 循环检测筛选轨迹