C语言实现24点游戏代码详解及Linux服务器运行教程

2024-12-31
来源:网络整理

本文实例分享了用C语言实现24点游戏的具体代码,供大家参考。具体内容如下

将算法实现改为C语言并在服务器上运行。还要修改它以显示所有结果。

注意:如果传递的参数重复,如4、4、7、7,重复的结果会回显,暂时无法清除。

#

#

#

#

= 1E-6;

#4

整数=24;

#50

[]={0}; //此处必须使用,

字符[][]={0}; //保存表达式

# 正确 1

#0

整数cnt = 0;

无效测试(int n)

整数 i = 0;

整数 j = 0;

int len = 0;

//递归结束

如果(1==n){

如果([0]==)

// 避免输出括号

对于 (i = 1; i < ([0]) - 1; i++)

("%c", [0][i]);

(“\n”);

cnt++;

别的

//递归过程

对于(i=0;i

对于(j=i+1;j

a、b;

char expa[] = {0};

char expb[] = {0};

a=[i];

b=[j];

// 删除[j]元素并用[n-1]填充

[j]=[n-1];

(expa,[i]);

(expb,[j]);

// 删除[j]元素并用[n-1]填充

([j],[n-1]);

// 添加

长度= ([i]);

语言游戏是规则游戏吗_语言游戏是什么_语言游戏是一种智力游戏

([i], , "(%s+%s)", expa, expb);

[i]=a+b;

测试(n-1);

//减号有两种情况,ab和ba

长度= ([i]);

([i], , "(%s-%s)", expa, expb);

[i] = ab;

测试(n-1);

如果(a!= b)

长度= ([i]);

([i], , "(%s-%s)", expb, expa);

[i]=ba;

测试(n-1);

//乘法

长度= ([i]);

([i], , "(%s*%s)", expa, expb);

[i]=a*b;

测试(n-1);

//除法也有两种情况,a/b和b/a

如果(b!= 0){

长度= ([i]);

([i], , "(%s/%s)", expa, expb);

[i]=a/b;

测试(n-1);

if((a!=0) && (a!= b)){

长度=([i]);

([i], , "(%s/%s)", expb, expa);

[i]=b/a;

测试(n-1);

//恢复数组

[i]=a;

[j]=b;

([i],expa);

([j],expb);

int main(int argc, char **argv)

整数 i = 0;

if(5 != argc)

(“参数错误\n”);

0;

对于(i=0;i

字符[20];

[i] = atoi(argv[i + 1]);

([i], argv[i + 1]);

测试();

if(0!=cnt)

(“[%d],\n”,cnt);

别的

(“失败\n”);

0;

运行结果如下:

安迪@:~/工作$ ./测试 5 6 7 8

((5+7)-8)*6

(5+7)*(8-6)

8/((7-5)/6)

(6/(7-5))*8

6/((7-5)/8)

(8/(7-5))*6

(6*8)/(7-5)

((5-8)+7)*6

(7-(8-5))*6

(5+7)*(8-6)

(6*8)/(7-5)

(5+(7-8))*6

(5-(8-7))*6

[13],

安迪@:~/工作$ ./测试 7 7 7 7

失败

以上就是本文的全部内容。希望对大家的学习有所帮助。也希望大家支持 Home。

分享