C语言程序设计24点游戏,能算出24的运算法则的代码,很急

作者&投稿:庄航 (若有异议请与网页底部的电邮联系)
C语言程序设计“算24”游戏求救!~

#include
#include
using namespace std;
const double MIN=1E-6;
void Print(int *Rank,double *FourNum)
{
for(int i=0;i<4;i++)
cout<<FourNum[Rank[i]]<<" ";
cout<<endl;
}
void Calculate_24(int *Rank,double *FourNum,char *Oper,int i,int j,int k,bool &def)
{
double res=0;
switch(i)
{
case 0:
res=FourNum[Rank[0]]+FourNum[Rank[1]];
break;
case 1:
res=FourNum[Rank[0]]-FourNum[Rank[1]];
break;
case 2:
res=FourNum[Rank[0]]*FourNum[Rank[1]];
break;
case 3:
res=FourNum[Rank[0]]/FourNum[Rank[1]];
break;
}
switch(j)
{
case 0:
res=res+FourNum[Rank[2]];
break;
case 1:
res=res-FourNum[Rank[2]];
break;
case 2:
res=res*FourNum[Rank[2]];
break;
case 3:
res=res/FourNum[Rank[2]];
break;
}
switch(k)
{
case 0:
res=res+FourNum[Rank[3]];
break;
case 1:
res=res-FourNum[Rank[3]];
break;
case 2:
res=res*FourNum[Rank[3]];
break;
case 3:
res=res/FourNum[Rank[3]];
break;
}
if(fabs(res-24)>MIN)
return;
else
{
def=true;
for(int num=1;num<=7;num++)
{
switch(num)
{
case 1:
cout<<FourNum[Rank[0]];
break;
case 3:
cout<<FourNum[Rank[1]];
break;
case 5:
cout<<FourNum[Rank[2]];
break;
case 7:
cout<<FourNum[Rank[3]];
break;
case 2:
cout<<Oper[i];
break;
case 4:
cout<<Oper[j];
break;
case 6:
cout<<Oper[k];
break;
}
}
cout<<endl;
}
}
void SearchTree(int Depth,int *Rank,double *FourNum,char *Oper,bool &def)
{
int i,j,k;
if(Depth==4)
{
for(i=0;i<4;i++)
for(j=0;j<4;j++)
for(k=0;k<4;k++)
Calculate_24(Rank,FourNum,Oper,i,j,k,def);
}
else
{
for(i=0;i<4;i++)
{
int Remember=0;
for(j=0;j<Depth;j++)
{
if(Rank[j]==i)
Remember=1;
}
if(Remember)
continue;
Rank[Depth]=i;
SearchTree(Depth+1,Rank,FourNum,Oper,def);
}
}
}
int main()
{
int a[4],b[4],time;
char c[4]={'+','-','*','/'};
bool def=false;
cin>>time;
while(time--)
{
for(int i=0;i<4;i++)//输入测试数据
cin>>a[i];
cout<<"所有可能的结果:"<<endl;
SearchTree(0,b,a,c,def);
if(def==false)
cout<<"No"<<endl;
}
return 0;
}

#include
#include
using namespace std;
const double MIN=1E-6;
void Print(int *Rank,double *FourNum)
{
for(int i=0;i<4;i++)
cout<<FourNum[Rank[i]]<<" ";
cout<<endl;
}
void Calculate_24(int *Rank,int *FourNum,char *Oper,int i,int j,int k,bool &def)
{
double res=0;
switch(i)
{
case 0:
res=FourNum[Rank[0]]+FourNum[Rank[1]];
break;
case 1:
res=FourNum[Rank[0]]-FourNum[Rank[1]];
break;
case 2:
res=FourNum[Rank[0]]*FourNum[Rank[1]];
break;
case 3:
res=FourNum[Rank[0]]/FourNum[Rank[1]];
break;
}
switch(j)
{
case 0:
res=res+FourNum[Rank[2]];
break;
case 1:
res=res-FourNum[Rank[2]];
break;
case 2:
res=res*FourNum[Rank[2]];
break;
case 3:
res=res/FourNum[Rank[2]];
break;
}
switch(k)
{
case 0:
res=res+FourNum[Rank[3]];
break;
case 1:
res=res-FourNum[Rank[3]];
break;
case 2:
res=res*FourNum[Rank[3]];
break;
case 3:
res=res/FourNum[Rank[3]];
break;
}
if(fabs(res-24)>MIN)
return;
else
{
def=true;
for(int num=1;num<=7;num++)
{
switch(num)
{
case 1:
cout<<FourNum[Rank[0]];
break;
case 3:
cout<<FourNum[Rank[1]];
break;
case 5:
cout<<FourNum[Rank[2]];
break;
case 7:
cout<<FourNum[Rank[3]];
break;
case 2:
cout<<Oper[i];
break;
case 4:
cout<<Oper[j];
break;
case 6:
cout<<Oper[k];
break;
}
}
cout<<endl;
}
}
void SearchTree(int Depth,int *Rank,int *FourNum,char *Oper,bool &def)
{
int i,j,k;
if(Depth==4)
{
for(i=0;i<4;i++)
for(j=0;j<4;j++)
for(k=0;k<4;k++)
Calculate_24(Rank,FourNum,Oper,i,j,k,def);
}
else
{
for(i=0;i<4;i++)
{
int Remember=0;
for(j=0;j<Depth;j++)
{
if(Rank[j]==i)
Remember=1;
}
if(Remember)
continue;
Rank[Depth]=i;
SearchTree(Depth+1,Rank,FourNum,Oper,def);
}
}
}
int main()
{
int a[4],b[4],time;
char c[4]={'+','-','*','/'};
bool def=false;
cin>>time;
while(time--)
{
for(int i=0;i<4;i++)//输入测试数据
cin>>a[i];
cout<<"所有可能的结果:"<<endl;
SearchTree(0,b,a,c,def);
if(def==false)
cout<<"No"<<endl;
}
return 0;
}

#include<iostream>
#include<math.h>
using namespace std;
const double MIN=1E-6;
void Print(int *Rank,double *FourNum)
{
for(int i=0;i<4;i++)
cout<<FourNum[Rank[i]]<<" ";
cout<<endl;
}
void Calculate_24(int *Rank,int *FourNum,char *Oper,int i,int j,int k,bool &def)
{
double res=0;
switch(i)
{
case 0:
res=FourNum[Rank[0]]+FourNum[Rank[1]];
break;
case 1:
res=FourNum[Rank[0]]-FourNum[Rank[1]];
break;
case 2:
res=FourNum[Rank[0]]*FourNum[Rank[1]];
break;
case 3:
res=FourNum[Rank[0]]/FourNum[Rank[1]];
break;
}
switch(j)
{
case 0:
res=res+FourNum[Rank[2]];
break;
case 1:
res=res-FourNum[Rank[2]];
break;
case 2:
res=res*FourNum[Rank[2]];
break;
case 3:
res=res/FourNum[Rank[2]];
break;
}
switch(k)
{
case 0:
res=res+FourNum[Rank[3]];
break;
case 1:
res=res-FourNum[Rank[3]];
break;
case 2:
res=res*FourNum[Rank[3]];
break;
case 3:
res=res/FourNum[Rank[3]];
break;
}
if(fabs(res-24)>MIN)
return;
else
{
def=true;
for(int num=1;num<=7;num++)
{
switch(num)
{
case 1:
cout<<FourNum[Rank[0]];
break;
case 3:
cout<<FourNum[Rank[1]];
break;
case 5:
cout<<FourNum[Rank[2]];
break;
case 7:
cout<<FourNum[Rank[3]];
break;
case 2:
cout<<Oper[i];
break;
case 4:
cout<<Oper[j];
break;
case 6:
cout<<Oper[k];
break;
}
}
cout<<endl;
}
}
void SearchTree(int Depth,int *Rank,int *FourNum,char *Oper,bool &def)
{
int i,j,k;
if(Depth==4)
{
for(i=0;i<4;i++)
for(j=0;j<4;j++)
for(k=0;k<4;k++)
Calculate_24(Rank,FourNum,Oper,i,j,k,def);
}
else
{
for(i=0;i<4;i++)
{
int Remember=0;
for(j=0;j<Depth;j++)
{
if(Rank[j]==i)
Remember=1;
}
if(Remember)
continue;
Rank[Depth]=i;
SearchTree(Depth+1,Rank,FourNum,Oper,def);
}
}
}
int main()
{
int a[4],b[4],time;
char c[4]={'+','-','*','/'};
bool def=false;
cin>>time;
while(time--)
{
for(int i=0;i<4;i++)//输入测试数据
cin>>a[i];
cout<<"所有可能的结果:"<<endl;
SearchTree(0,b,a,c,def);
if(def==false)
cout<<"No"<<endl;
}
return 0;
}


c语言怎样设计游戏?
1. 输出1+1 = ? 输入2,则输出正确,输入其他则显示错误 2. 24点游戏,输出4个数,输入一行表达式,程序内部计算表达式的值(比较费劲),若=24则返回胜利,否则失败 3. 五子棋(无AI,否则难),黑白方轮流输入坐标,每次输入完坐标都重新输出一次棋盘上所有棋子,具体方式就是把存储棋子的矩阵...

2,5,11,12算24点的算法
(2*(11-5))+12 ((11-5)*2)+12 12-(2*(5-11))12+(2*(11-5))12-((5-11)*2)12\/((11\/2)-5)12+((11-5)*2)---END---

400分 求用MFC编程一个24点游戏!!
用MFC开发24核心代码 void CMfcDlgAppDlg::OnAdd() { \/\/ TODO: Add your control notification handler code here UpdateData(); \/\/获取编辑框录入的数据 m_symbol="+"; m_equation="="; m_result=m_num1+m_num2; m_doing="Adding"; UpdateData(FALSE); \/\/在编辑框中显示数据 } void...

5^6是怎么算的?
根号下5-2根号6等于√3-√2。5-2√6=3-2√3×√2+2=(√3-√2)²所以原式=√3-√2。根号是一个数学符号。根号是用来表示对一个数或一个代数式进行开方运算的符号。若aⁿ=b,那么a是b开n次方的n次方根或a是b的1\/n次方。开n次方手写体和印刷体用表示,被开方的数或代数...

求一个用vb设计的扑克牌程序
54张牌,几率大概有几千亿种,甚至还多,还要54个图片,难度可想而知。给你私信了。你先看看,是否符合你的要求,如果可以,源文件发到你的邮箱。如果不行,提要求,按你的要求修改。

C语言基础知识总结大全
《C陷阱与缺陷》 正如书上所说,“本书所揭示的知识,至少能够帮助你减少 C 代码和初级 C++ 代码中 90% 的 Bug”,看完后可以避免 C 语言开发的一些坑。 网课 1、《郝斌C语言自学教程》 2、《程序设计入门——C语言》(浙大翁恺) 小项目 包括C语言迷宫、24点游戏、奔跑的火柴人、超市管理系统、打字母、电子...

求一个。net(C#)+sql网上学生成绩查询系统(毕业设计)
vb原创图书管理系统)毕业设计+论文vb源代码加可执行文件加论文vb智能排课系统+论文vb中介管理系统vb+access源代码+论文+开题报告+外文翻译+答辩ppt学生宿舍管理系统VC++C++ 003指纹识别系统C++课程设计报告(人事管理系统)VC++ 003指纹识别系统VC++06全国天气信息管理系统vc++24点游戏的开发和实现VC++车辆调度vc++航空...

c语言'\\007'是什么意思
转义字符不属于控制字符;控制字符也不属于转义字符。如果控制字符的定义是非图形的字符,或者对输出设备(打印机、文本终端)有特殊意义的字符,那么针对这些设备的转义字符也是控制字符。但是程序设计用的转义字符是图形字符,因此它们不是控制字符。相反地,大多数ASCII控制字符单独都具有控制功能,因此它们不...

用字母表示数说课稿
让他们体会到符号化的语言在应用中是多么的重要,所以课堂上我是这样组织教学的,先通过扑克牌玩24点,和按规律填数,引导学生自主发现字母可以表示数,并在一定的情境中,字母表示的是特定的数。(出示6、10、7、A) 接着让学生回忆在以前的数学学习中,碰到过字母表示数的例子吗?根据学生的学习经验能说出一些运算定律...

我要计算机毕业论文
VC001游戏程序设计(五子棋)VC002题库管理系统VC003局域网即时聊天程序的设计与实现VC004人脸识别系统设计VC005指纹识别系统VC00624点游戏的开发和实现VC007中国象棋软件VC008可视化图像处理系统C#.net网络办公助理网上选课系统C#.NET.SQL2000网上选课系统C#+SQL用socket实现局域网办公助理asp.netASP.NET001通用作业批改...

神池县15856042322: 如何用C语言做一个24点游戏的程序? -
阿货多烯: /*6.3.4nbsp;源程序*/#definenbsp;Nnbsp;20#definenbsp;COLnbsp;100#definenbsp;ROWnbsp;40#includenbsp;“stdio.h“#includenbsp;“time.h“nbsp;/*系统时间函数*/#includenbsp;“graphics.h“nbsp;/*图形函数*/#includenbsp;“alloc.h...

神池县15856042322: 求助怎么用C语言设计一个算24游戏? -
阿货多烯: #include"math.h" int total=0,count=0,page; char temp; main(){float sum(float,float,char);void test24(float [],char []);int i,j,k,l,q,r,s,t,n=0;float a[4];char f[4]={'+','-','*','/'};float x[4];char y[3];int go=1;while(go==1){printf("Please input how many ...

神池县15856042322: 加减乘除求24点的游戏怎么用C语言编啊? -
阿货多烯: #include "stdio.h" #include "math.h" #include "time.h" void main() { void first(); void second(); int third(); time_t t; int close=0; char get; clrscr(); srand((unsigned) time(&t)); for(;;) { clrscr(); printf("24 POINTS SYSTEM v2.2\n"); printf("MADE ...

神池县15856042322: 24点游戏设计与实现 C语言 -
阿货多烯: 大概方法:1,利用srand和rand产生四个13以内的随机整数.2,利用堆栈校验游戏者输入算式的正确性.

神池县15856042322: 加减乘除求24点的游戏怎么用C语言编啊?
阿货多烯: #includenbsp;“stdio.h“nbsp;#includenbsp;“math.h“nbsp;#includenbsp;“time.h“nbsp;voidnbsp;main()nbsp;{nbsp;nbsp;nbsp;nbsp;voidnbsp;first();nbsp;nbsp;nbsp;nbsp;voidnbsp;second();nbsp;nbsp;nbsp;intnbsp;third();nbsp;nbsp;nbsp;...

神池县15856042322: 设计C语言程序 计算24点题目要求在输入4个数后,程序对这个4个数进行运算,若能计算出结果等于24,输出运算 -
阿货多烯: #include <stdio.h> #include <string.h> int c24; char expr3[80]; char expr4[80]; void count2( int a, int b ) {if ( a + b == 24 ){c24 ++;printf( "%s\t%s\t%d+%d=24\n", expr4, expr3, a, b );}if ( a * b == 24 ){c24 ++;printf( "%s\t%s\t%d+%d=24\n...

神池县15856042322: 用c语言编写,关于24点的程序 -
阿货多烯: #include<stdio.h> double fun(double a1,double a2,int b) //加减乘除的函数 {switch(b) {case 0:return (a1+a2); case 1:return (a1-a2); case 2:return (a1*a2); case 3:return (a1/a2); } } void main() {int i,j,k,l,n,m,r,save[4],flg=1; double num[4]={1,1,1,1},tem1,...

神池县15856042322: 用C语言设计算法完成24点游戏的计算. -
阿货多烯: 这个不适合用C语言实现,扑克牌需要有图形界面,C语言是字符界面,建议用Java.

神池县15856042322: C语言编写24点游戏 -
阿货多烯: tony124说的那个,系统自动生成1-13的数,提示玩家输入算式(如A+B—C*if(result==24) /*如果结果等于24*/ text1(

神池县15856042322: C语言程序设计“算24”游戏求救! -
阿货多烯: #include<iostream>#include<math.h> using namespace std; const double MIN=1E-6; void Print(int *Rank,double *FourNum) { for(int i=0;i<4;i++) cout<<FourNum[Rank[i]]<<" "; cout<<endl; } void Calculate_24(int *Rank,double *FourNum,char *...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网