用扑克牌计算24点

  • 题目
  • 答案
  • 注意
  • 参考

题目

答案

#include<stdio.h>float operation(float a,float b,char c)
{switch(c){case '+':return a+b;case '-':return a-b;case '*':return a*b;case '/':return a/b;}
}
int number(float a[],char c[])
{float temp1=0,temp2=0,sum=0;int i,j,k,l;for(i=0;i<4;i++)for(j=0;j<4;j++)for(k=0;k<4;k++)for(l=0;l<4;l++){if(i!=j&&i!=k&&i!=l&&j!=k&&j!=l&&k!=l){temp1=operation(a[i],a[j],c[0]);temp2=operation(temp1,a[k],c[1]);sum=operation(temp2,a[l],c[2]);if(sum==24) {printf("((%.0f%c%.0f)%c%.0f)%c%.0f",a[i],c[0],a[j],c[1],a[k],c[2],a[l]);return 1;}//((1 2) 3) 4temp1=operation(a[j],a[k],c[1]);temp2=operation(a[i],temp1,c[0]);sum=operation(temp2,a[l],c[2]);if(sum==24) {printf("(%.0f%c(%.0f%c%.0f))%c%.0f",a[i],c[0],a[j],c[1],a[k],c[2],a[l]);return 1;}//(1 (2 3)) 4temp1=operation(a[i],a[j],c[0]);temp2=operation(a[k],a[l],c[2]);sum=operation(temp1,temp2,c[1]);if(sum==24) {printf("(%.0f%c%.0f)%c(%.0f%c%.0f)",a[i],c[0],a[j],c[1],a[k],c[2],a[l]);return 1;}//(1 2)(3 4)temp1=operation(a[j],a[k],c[1]);temp2=operation(temp1,a[l],c[2]);sum=operation(a[i],temp2,c[0]);if(sum==24) {printf("%.0f%c((%.0f%c%.0f)%c%.0f)",a[i],c[0],a[j],c[1],a[k],c[2],a[l]);return 1;}//1 ((2 3) 4)temp1=operation(a[k],a[l],c[2]);temp2=operation(a[j],temp1,c[1]);sum=operation(a[i],temp2,c[0]);if(sum==24)  {printf("%.0f%c(%.0f%c(%.0f%c%.0f))",a[i],c[0],a[j],c[1],a[k],c[2],a[l]);return 1;}//1 (2 (3 4))}}return 0;
}
int main()
{float num[4]={0};int i,j,k,l=0;for(i=0;i<4;i++)scanf("%f",&num[i]);char a[6]="+-*/";char icon[64][5]={0};for(i=0;i<4;i++)for(j=0;j<4;j++)for(k=0;k<4;k++){icon[l][0]=a[i];icon[l][1]=a[j];icon[l][2]=a[k];l++;}for(i=0;i<64;i++)if(number(num,icon[i])) return 0;printf("-1");
}

注意

不要像我一样,把!=写成了=!,因为这事儿我找了2个小时的bug,呜呜呜

参考

https://blog.csdn.net/strcpy_s/article/details/103789851

用扑克牌计算24点(c语言)相关推荐

  1. c语言计算24游戏,C语言解24点游戏程序

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 前几天在微博上看到24点的游戏,6 6 6 10.算了很久是在算不出来,最后我想我何不写一个小程序解决它?说做就做,我刚开始的想法很简单,就是列举4个数的 ...

  2. PTA 用扑克牌计算24点 (25 分)

    一副扑克牌的每张牌表示一个数(J.Q.K 分别表示 11.12.13,两个司令都表示 6).任取4 张牌,即得到 4 个 1~13 的数,请添加运算符(规定为加+ 减- 乘* 除/ 四种)使之成为一个 ...

  3. 使用Scala语言开发GUI界面的计算24点的游戏应用

    今年开始学习Scala语言,对它的强大和精妙叹为观止,同时也深深感到,要熟练掌握这门语言,还必须克服很多艰难险阻. 这时,我就在想,如果能有一种方式,通过实际的应用实例,以寓教于乐的方式,引导我们逐步 ...

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

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

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

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

  6. c#和javascript分别轻松实现计算24点

    24点游戏介绍:给出4个1-9之间的整数(ms我当年玩的时候是用扑克牌),其中每个数字必须且只用一次:任意使用+-*/ ( ),构造出一个表达式,使得最终结果为24,这就是常见的算24点的游戏(我的老 ...

  7. 1224 红魔馆的纸牌游戏 (计算24点,dfs)

    Description 红魔馆的蕾米莉亚大小姐一天发现人类有一种叫做24点的游戏,于是就带着一副不知哪里弄来的扑克牌到图书馆找帕秋莉玩 24点游戏的规则:从一副牌中随机抽取4张牌,牌的点数为1到13之 ...

  8. feedback算法C语言,Learner Reviews Feedback for 计算导论与C语言基础 Course | Coursera

    1 - 25 sur 374 Avis pour 计算导论与C语言基础 Filled StarFilled StarFilled StarStarStar par Wan K• 16 août 201 ...

  9. 计算24点游戏精化算法剖析

    很多人都玩过这个数学味儿很浓的益智游戏:抽出4张扑克牌,牌上的点数代表四个数字,花牌视为1点(有的把J.Q.K分别视为11.12.13点),玩家中谁最先运用加减乘除四则运算,由这四个数计算出24,谁就 ...

最新文章

  1. xcode 编译静态库所要注意
  2. Gradle 1.12用户指南翻译——第三十五章. Sonar 插件
  3. 2020.3.10.遗留问题
  4. 《集体智慧编程》第二章(一)
  5. Java基础-学习笔记(五)——面向过程和面向对象的区别
  6. opencv4 图像特征匹配_概述 | 全景图像拼接技术全解析
  7. java jquery easyui_java中用jquery-easyui插件做可编辑datagird列表
  8. C语言图书出入库管理系统
  9. 【科研】计算社会科学与复杂科学
  10. 恒流源差分放大电路静态分析_第11讲 差分放大电路_清华大学:模拟电子技术基础(华成英)_ppt_大学课件预览_高等教育资讯网...
  11. 显著性分析-秩和检验与校正
  12. 3线8线译码器74HC138门电路设计一位二进制全减器电路
  13. 两步教你在安卓中快速使用矢量图
  14. uni-app本站点必须要开启JavaScript才能运行
  15. 运行sh文件(pycharm上);pycharm出现错误[: ==: unary operator expected;出错为: If memory is >> allocated;Vm tools安装
  16. 隐形窗口_建立网站时要考虑的隐形(但至关重要)注意事项
  17. hotmail邮箱在Outlooknbsp;2010中…
  18. 全面理解document.write()
  19. Win10电脑如何格式化
  20. 使用python合并多个txt文件

热门文章

  1. 基于Python的校园二手物品交易平台的设计与实现
  2. 欧能智能电销机器人争做行业No.1
  3. Linux MTD子系统(1):系统层次分析
  4. Flash-如何改变动态文本透明度?
  5. scrapy pipelines(MySQL )
  6. Radware攻击缓解措施成功抵御DDoS攻击
  7. F5, Radware, Array的对比
  8. 【京东商城首页实战2】导航条制作(1)
  9. Javascript 中 callee 和 caller
  10. 几种通信方式介绍(一)————串行通信技术介绍