当前位置:首页 » 编程语言 » c语言与智能程序
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言与智能程序

发布时间: 2022-01-15 20:05:10

A. c语言程序如何智能化

我大致知道你想干什么了。最常见的解决方法是你把这些常量和名称都扔到数据库里最方便。你想通过运行时解析字符串然后再找相应名称的常量啊,那是不可能的,为啥呢?
因为所有的变量名和常量名在编译成.exe文件之后都通通的消失不见了,木有了!归于无了!留下的只有各种地址,各种基地址和各种偏移。所以无论你怎样挣扎,只要不以某种方式将常量名以字符串变量的形式和数值绑在一起的话,那你是找不到的。
绑定的方式是自己做容器结构,然后将名称和数值成对保存,然后搜索的时候遍历整个数据结构,麻烦。
想来想去还是数据库最贴心了,比如sqlite

B. C语言能做人工智能吗

理论上讲是在于算法
但在具体的实现上,同一问题用不同的语言解决的时候的算法设计是有区别的,即使实现了,那在效率也是有差别的

据我所知,LISP是人工智能程序语言(很少听说听C做人工智能的)

标题:LISP人工智能程序语言
内容:
LISP的由来
LISP是一种计算机的表处理语言,是函数型语言。它是LIST Processing 的缩写,是研究人工智能的有力工具。
LISP最初是作为书写字符与表的递归函数的形式系统出现的,1958年由美国麻省理工学院(MIT)的AI小组提出(要为问答系统设计一种语言),1960年由MIT的John.McCarthy教授(麦卡西教授,举世闻名的计算机科学家,图灵奖获得者,后为美国斯坦福大学教授)整理成统称为LISP1.0的形式发表,然后开始流行于AI界.以后陆续出现了LISP1.5(1962年),LISP1.6,MACLISP,INTERLISP,COMMONLISP,GCLISP,CCLISP等等变种。商业中一般认Berkeley(加洲大学)的LISP1.5为规范,但以目前的发展看,COMMON LISP将成为一种标准,有统一各种LISP “方言”的趋势。在众多不同版本的流行LISP语言中,使用最广泛的是INTER LISP(XEROX公司开发),MACLISP(麻省理工学院开发)和COMMON LISP。LISP是继FORTRAN(FORTRAN是1954年提出,1956年开始使用)之后出现的第二个古老的(1958年提出,1960年开始使用)计算机高级语言,至今使用近四十年仍受重视,并为人工智能的发展作出了不可磨灭的贡献.由此可见LISP是一门历史悠久,用途广泛,功能极强,生命力极强的人工智能程序设计语言。
LISP语言一般为解释型语言(即由解释程序边解释边执行),但也有了编译型的LISP语言,并已经有了专用的LISP机。例如,编译型的LISP语言SCHEME诞生于麻省理工学院,1984年由美国15个大学和公司共同提供了被广泛接受的SCHEME标准。德克萨斯仪器公司于1985年在IBM PC机上实现了称为PC SCHEME的语言。PC SCHEME的中文版由南京大学和武汉大学联合开发,可在640KB以上的PC机上在CCDOS和MSDOS下运行并可访问其它DOS程序。

LISP语言的主要特点(优点)
(1) LISP具有和图灵机相同的(也就是理论上最高的)计算能力;
在计算机科学的可计算理论中,人们已经证明递归函数和图灵机具有相同的(也就是理论上最高的)计算能力,通常指的是自然数集上的递归函数。这个结论对符号集上的递归函数也成立。J.McCarthy在LISP中设计了一套符号处理函数,它们具有符号集上的递归函数的计算能力,因此原则上可以解决人工智能中的任何符号处理问题。
(2)数据类型的唯一性,程序与数据的一致性;
LISP的数据类型和句法结构简单,甚至简单到具有唯一性和一致性:其数据和程序的表现形式是一样的, 都是用S-表达式一种形式.基本的数据结构是表(表是S-表达式的特例)。
(3)数据和程序的 等价性;
LISP的数据和程序不仅类型一致,而且作用也等价;
即:程序可作为数据被处理,数据也可作为程序来执行。
(4)LISP一切功能由函数来实现,程序的运行就是求值;
LISP程序的通常形式是一串函数定义,其后跟着一串带有参数的函数调用,函数之间的关系只是在调用执行时才体现出来。
(5)LISP语言的控制结构以递归为主;
大多数语言使用的控制结构是以循环为主的,有的程序语言允许递归,而LISP以递归形式为主。递归是LISP能力的源泉。当然现在LISP也有循环结构和迭代。
(6)原子可以有任意多个值(特性值);
LISP非常重要的一个特点是每个文字原子可以加许多特性,每个特性有一个特性表及对应的特性值。由于原子的多值性给使用者带来很多方便,给问题表示带来好处,使LISP很好用。
(7)LISP具有表的结构形式和规模的灵活性,不必预先设定;
(8)具有收集无用单元的功能。

LISP语言的主要缺点
(1)初学者不容易习惯LISP的句法结构,特别是多层表的括号配对写法;
(2)数据类型少(常用的只有表和原子),使其表达能力受限;
(3)规范性差(无标准版本,不同的LISP文本间差别较大);
(4)程序的可读性不及一般的高级语言;
(5)执行速度慢。
LISP执行速度慢的原因有几个:(1)一般的 LISP是解释型, 程序边解释边执行当然比编译型慢;(2)LISP的控制结构主要是递归, 递归费时间费空间;(3)内存空间动态变化。LISP不要求用户在程序 中写一些用来指示内存分配的说明语句,全部内存必须动态的分配,直到 没有空间时才开始收集无用单元。

C. C语言对人工智能入门重要吗

C是命令式语言的一种,语言有很多种可以实现人工智能编程的啊,任何一种语言都能够用于创建人工智能应用程序,但是其中一些语言比另一些更适合解决某种问题。

D. 求C语言源程序

用户文档:(1)每次输入一个代号,执行一个操作,执行完后都回到界面,第一次执行操作时要先输入若干个学升记录。
(2)输入时按学号由小到大以“学号,分数,名字”格式,学号在十位内,分数要是整数,名字不能有空格,每输入一个学生记录后按一次回车。
(3)加上插入的一共可存放20个学生。即:若一开始输入5个学生记录,则最多可插入15个学生记录。

源程序:
#include<stdio.h>
#include<string.h>
struct student
{long num;
char name[20];
int score;
}stu[20];
int n;int mid; /*保存学生记录数的全局变量n 与 修改时调用search函数用的全局变量mid*/

input(void) /*输入*/
{int i;
printf("\n");
printf("How many students' records do you input?\n");
scanf("%d",&n);
printf("Input %d students' records:\n",n);
printf("number,score,name\n");
for(i=0;i<=n-1;i++)scanf("%ld,%d,%s",&stu[i].num,&stu[i].score,stu[i].name);
printf("\n");
printf("the records you input are:\n");
printf("number,score,name\n");
for(i=0;i<=n-1;i++)printf("%ld,%d,%s\n",stu[i].num,stu[i].score,stu[i].name);
printf("\n");
printf("Press any key to continue\n");
getch();
}

show(void) /*当前存放的学生记录输出以便核对*/
{int i;
printf("The current records are:\n");
printf("number,score,name\n");
for(i=0;i<=n-1;i++)printf("%ld,%d,%s\n",stu[i].num,stu[i].score,stu[i].name);
printf("\n");
printf("Press any key to continue\n");
getch();
}

search(void) /*查找(二分法)*/
{long a;
int first,last,sign;
printf("\n");
printf("Input the number of the student you want to find:\n");
scanf("%ld",&a);
first=0;last=n-1;mid=(first+last)/2;sign=0; /*first与last是两端点下标,mid是中点下标,sign是找到与否的标志*/
while((sign==0)&&(first<=last))
{if(stu[mid].num==a)
{printf("The student you want to find is:\n");
printf("number,score,name\n");
printf("%ld,%d,%s\n",stu[mid].num,stu[mid].score,stu[mid].name);sign=1;}
else if(stu[mid].num>a){last=mid-1;mid=(first+last)/2;}
else {first=mid+1;mid=(first+last)/2;}
}
if(sign==0)printf("The student is not in the list.\n");
printf("\n");
printf("Press any key to continue\n");
getch();
}

sort(void) /*按分数排名(选择法)*/
{struct student stud[10];int i,j,max;long t1;char t2[]="name temporary string";int t3;
for(i=0;i<=n-1;i++)
{stud[i].num=stu[i].num;strcpy(stud[i].name,stu[i].name);stud[i].score=stu[i].score;} /*stu数组的信息传给stud数组,再对stud排序输出*/
for(i=0;i<=n-2;i++)
{max=i;
for(j=i+1;j<=n-1;j++)if(stud[j].score>stud[max].score)max=j;
t1=stud[max].num;stud[max].num=stud[i].num;stud[i].num=t1;
strcpy(t2,stud[max].name);strcpy(stud[max].name,stud[i].name);strcpy(stud[i].name,t2);
t3=stud[max].score;stud[max].score=stud[i].score;stud[i].score=t3;
}
printf("\n");
printf("The records sorted by scores:\n");
printf("number,score,name\n");
for(i=0;i<=n-1;i++)printf("%ld,%d,%s\n",stud[i].num,stud[i].score,stud[i].name);
printf("\n");
printf("Press any key to continue\n");
getch();
}

insert(void) /*插入*/
{
long t1;char t2[]="name temporary string";int t3;int i;
printf("\n");
printf("Input the new student's records:\n");
printf("number,score,name\n");
scanf("%ld,%d,%s",&stu[n].num,&stu[n].score,stu[n].name);
for(i=n;i>=1;i--)if(stu[i].num<stu[i-1].num)
{t1=stu[i].num;stu[i].num=stu[i-1].num;stu[i-1].num=t1;
strcpy(t2,stu[i].name);strcpy(stu[i].name,stu[i-1].name);strcpy(stu[i-1].name,t2);
t3=stu[i].score;stu[i].score=stu[i-1].score;stu[i-1].score=t3;
}
else break;
printf("After the insertion:\n");
printf("number,score,name\n");
for(i=0;i<=n;i++)printf("%ld,%d,%s\n",stu[i].num,stu[i].score,stu[i].name);
n++; /*插入后学生级录数加1*/
printf("\n");
printf("Press any key to continue\n");
getch();
}

change(void) /*修改*/
{int i;
printf("\n");
search();
printf("Now input the new record of the student:\n");
printf("number,score,name\n");
scanf("%ld,%d,%s",&stu[mid].num,&stu[mid].score,stu[mid].name);
printf("Done! Now all the records are:\n");
printf("number,score,name\n");
for(i=0;i<=n-1;i++)printf("%ld,%d,%s\n",stu[i].num,stu[i].score,stu[i].name);

printf("\n");
printf("Press any key to continue\n");
getch();
}

main() /*输出主界面*/
{int a;
printf("This is a program that can process students' records.\n\n");
printf("******************************************************\n\n");
printf(" 1----------input\n");
printf(" 2----------show the current records\n");
printf(" 3----------search\n");
printf(" 4----------sort by score\n");
printf(" 5----------insert\n");
printf(" 6----------change\n");
printf(" 0----------exit\n\n");
printf("******************************************************\n\n");
printf("input what you want to do : ");
scanf("%d",&a);
if(a==0)printf("Thank you for using this program.Press any key to leave\n");
while(a!=0)
{switch(a)
{case 1:input();break;
case 2:show();break;
case 3:search();break;
case 4:sort();break;
case 5:insert();break;
case 6:change();break;
}
printf("******************************************************\n\n");
printf(" 1----------input\n");
printf(" 2----------show the current records\n");
printf(" 3----------search\n");
printf(" 4----------sort by score\n");
printf(" 5----------insert\n");
printf(" 6----------change\n");
printf(" 0----------exit\n\n");
printf("******************************************************\n\n");
printf("input what you want to do : ");
scanf("%d",&a);
if(a==0){printf("The you for using this program. Press any key to leave\n");break;}
}
getch();
}

测试:1、输入:101,90,Shengping 2、查询:104 结果:104,95,Zhuoyan
102,85,Minchao 查询:109 结果:The student is not in the list.
104,95,Zhuoyan
108,80,Xishan
112,91,Yimin
3、插入:109,92,Zhaojian 4、修改:输入:108
结果:101,90,Shengping 输入改的:108,88,Jack
102,85,Minchao 结果:101,90,Shengping
104,95,Zhuoyan 102,85,Minchao
108,80,Xishan 104,95,Zhuoyan
109,92,Zhaojian 108,88,Jack
112,91,Yimin 109,92,Zhaojian
112,91,Yimin

E. 怎么用C语言编写人工智能程序

如果是没有学习过的话,有一定的难度,建议先去学习。

人工智能代表的范围太大了 C是必不可少的一部分 不能说是有直接关系 可以说是一个必备的组成部分;
人工智能实际的范围和实际应用:机器视觉,指纹识别,人脸识别,视网膜识别,虹膜识别,掌纹识别,专家系统,自动规划,智能搜索,定理证明,博弈,自动程序设计,智能控制,机器人学,语言和图像理解,遗传编程等,
其中几项和C语言、自动化、必不可分。
能力有限,不熟悉人工智能这块。

F. C语言&和&&的区别,|和||的区别是什么

“&&”(逻辑与)是逻辑运算符。

“逻辑与”相当于生活中说的“并且”,就是两个条件都同时成立的情况下“逻辑与”的运算结果才为“真”。



“&”是位运算符。

G. 关于C语言与编程的发展前景!

一、什么是C语言:
C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统开发。
二、C语言的优势:
C语言具有其它语言所无法比拟的优势,因而被广泛应用,其具体优势如下所示:
1、简洁紧凑、灵活方便 C语言一共只有32个关键字,9种控制语句,程序书写形式自由,区分大小写。把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。 2、运算符丰富 C语言的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C语言的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。
3、数据类型丰富 C语言的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据结构的运算。并引入了指针概念,使程序效率更高。
4、表达方式灵活实用 C语言提供多种运算符和表达式值的方法,对问题的表达可通过多种途径获得,其程序设计更主动、灵活。它语法限制不太严格,程序设计自由度大,如对整型量与字符型数据及逻辑型数据可以通用等。
5、允许直接访问物理地址,对硬件进行操作 由于C语言允许直接访问物理地址,可以直接对硬件进行操作,因此它既具有高级语言的功能,又具有低级语言的许多功能,能够像汇编语言一样对位(bit)、字节和地址进行操作,而这三者是计算机最基本的工作单元,可用来写系统软件。
6、生成目标代码质量高,程序执行效率高 C语言描述问题比汇编语言迅速,工作量小、可读性好,易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编程序生成的目标代码效率低10%~20%。
7、可移植性好 C语言在不同机器上的C编译程序,86%的代码是公共的,所以C语言的编译程序便于移植。在一个环境上用C语言编写的程序,不改动或稍加改动,就可移植到另一个完全不同的环境中运行。
8、表达力强 C语言有丰富的数据结构和运算符。包含了各种数据结构,如整型、数组类型、指针类型和联合类型等,用来实现各种数据结构的运算。C语言的运算符有34种,范围很宽,灵活使用各种运算符可以实现难度极大的运算。
C语言能直接访问硬件的物理地址,能进行位(bit)操作。兼有高级语言和低级语言的许多优点。它既可用来编写系统软件,又可用来开发应用软件,已成为一种通用程序设计语言。另外C语言具有强大的图形功能,支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。
三、C语言的应用:
1.单片机和嵌入式系统行业,这个行业是C的黄金行业,也是目前IT中的高薪行业,这个行业里高手很多,对编程和硬件设计的要求很高,C因为可以和汇编结合来控制硬件,在这个行业里广受欢迎。
2.程序设计邻域,这个邻域里用的编程软件很多,有很多的语言,C在其中的分量显的比较薄,但仍不失为一个重要的角色。
C语言广阔的就业前景吸引着越来越多怀揣梦想的学习加入C语言学习的浪潮,为满足学生的学习要求,帮助学生实现梦想,3G梦工场软件学院应运而生。3G梦工场自成立以来一直致力于致力于对3G前端应用开发工程师、iphone 软件应用开发工程师、Android开发工程师、J2ME 开发工程师、Windows Mobile开发工程师的培养。
3G梦工场采取小班授课、项目教学、商业项目开发的教学方式,通过企业定向培养,入学签订就业推荐协议等人才培养模式,吸引众多大学生就读。课程提供内容丰富、教材形式多样,配图教材,多媒体动画PPT,清晰的授课思路以及随时可以观摩的在线咨询。提高授课质量,降低学生学习难度。通过优质的教育让学生在不仅掌握C语言,还掌握其它软件开发技能,让学生的就业范围更广!

H. C语言和C++语言编程上的区别

C语言是结构化和模块化的面向过程的语言,C++语言是面向对象的程序设计语言。C++语言是C语言的超集,也就是说学会了C++,你其实已经把C语言学会了。至于说有什么区别,应该说是编程思想的区别吧,C是基于过程的,强调的是程序的功能,以函数(功能)为中心。C++是面向对象的,强调程序的分层、分类,以抽象为基础,进行对象的定义与展示,即程序设计。具体说来话长。建议你学习C++的时候,学会用面向对象的方式思考和编程。现在在开发大项目的时候,都是应用面向对象的分析和设计的技术。

C语言与C++的区别有很多:
1,全新的程序程序思维,C语言是面向过程的,而C++是面向对象的。
2,C语言有标准的函数库,它们松散的,只是把功能相同的函数放在一个头文件中;而C++对于大多数的函数都是有集成的很紧密,特别是C语言中没有的C++中的API是对Window系统的大多数API有机的组合,是一个集体。但你也可能单独调用API。
3,特别是C++中的图形处理,它和语言的图形有很大的区别。C语言中的图形处理函数基本上是不能用在中C++中的。C语言标准中不包括图形处理。
4,C和C++中都有结构的概念,但是在C语言中结构只有成员变量,而没成员方法,而在C++中结构中,它可以有自己的成员变量和成员函数。但是在C语言中结构的成员是公共的,什么想访问它的都可以访问;而在VC++中它没有加限定符的为私有的。
4,C语言可以写很多方面的程序,但是C++可以写得更多更好,C++可以写基于DOSr程序,写DLL,写控件,写系统。
5,C语言对程序的文件的组织是松散的,几乎是全要程序处理;而c++对文件的组织是以工程,各文件分类明确。
6,C++中的IDE很智能,和VB一样,有的功能可能比VB还强。
7,C++对可以自动生成你想要的程序结构使你可以省了很多时间。有很多可用的工具如加入MFC中的类的时候,加入变量的时候等等。
8,C++中的附加工具也有很多,可以进行系统的分析,可以查看API;可以查看控件。
9,调试功能强大,并且方法多样

I. C语言编程智能电子钟,完整的程序

#include "stdio.h"
#include<time.h>
#include<stdlib.h>
int main()
{
time_t t1;
struct tm *tblock;
while(1)
{
for(int i=0;i<=10000;i++) printf("\b");
t1 = time(NULL);
tblock = localtime(&t1);
printf("当前时间:%d-%d-%d\t %d:%d:%d",tblock->tm_year+1900,tblock->tm_mon,tblock->tm_mday,tblock->tm_hour,tblock->tm_min,tblock->tm_sec);
}
}

J. 计算机智能算数的C语言程序

递归

abcd

a+(b+(c+d))//第一种算式

---

***

///

(a+b)+(c+d)//第二种算式

---

***

///

递归不会用最笨的算法吧好多事得自己做

一个最累的程序写了半天还不是很完善你参考一下吧


#include<stdio.h>

#defineAd(x,y)(x+y)

#defineMi(x,y)(x-y)

#defineMu(x,y)(x*y)

#defineDi(x,y)(x/y)

intfalg=0;

floatpo[24][4];

voidgame24();

voidtest(floata,floatb,floatc,floatd);

voidwrite(float(*po)[4],floata,floatb,floatc,floatd);


intmain()

{

game24();

return0;

}

voidtest(floata,floatb,floatc,floatd)

{


//a+(b+c+d)

if(Ad(a,Ad(b,Ad(c,d)))==24){printf("%2.0f+%2.0f+%2.0f+%2.0f=24 ",a,b,c,d);falg=1;}

if(Ad(a,Ad(b,Mi(c,d)))==24){printf("%2.0f+%2.0f+%2.0f-%2.0f ",a,b,c,d);falg=1;}

if(Ad(a,Ad(b,Mu(c,d)))==24){printf("%2.0f+%2.0f+%2.0f*%2.0f ",a,b,c,d);falg=1;}

if(d!=0&&Ad(a,Ad(b,Di(c,d)))==24){printf("%2.0f+%2.0f+%2.0f/%2.0f ",a,b,c,d);falg=1;}

if(Ad(a,Mi(b,Ad(c,d)))==24){printf("%2.0f+%2.0f-%2.0f+%2.0f ",a,b,c,d);falg=1;}

if(Ad(a,Mi(b,Mi(c,d)))==24){printf("%2.0f+%2.0f-%2.0f%2.0f ",a,b,c,d);falg=1;}

if(Ad(a,Mi(b,Mu(c,d)))==24){printf("%2.0f+%2.0f-%2.0f*%2.0f ",a,b,c,d);falg=1;}

if(d!=0&&Ad(a,Mi(b,Di(c,d)))==24){printf("%2.0f+%2.0f-%2.0f/%2.0f ",a,b,c,d);falg=1;}

if(Ad(a,Mu(b,Ad(c,d)))==24){printf("%2.0f+%2.0f*(%2.0f+%2.0f) ",a,b,c,d);falg=1;}

if(Ad(a,Mu(b,Mi(c,d)))==24){printf("%2.0f+%2.0f*(%2.0f-%2.0f) ",a,b,c,d);falg=1;}

if(Ad(a,Mu(b,Mu(c,d)))==24){printf("%2.0f+%2.0f*%2.0f*%2.0f ",a,b,c,d);falg=1;}

if(d!=0&&Ad(a,Mu(b,Di(c,d)))==24){printf("%2.0f+%2.0f*%2.0f/%2.0f ",a,b,c,d);falg=1;}

if(Ad(c,d)!=0&&Ad(a,Di(b,Ad(c,d)))==24){printf("%2.0f+%2.0f/(%2.0f+%2.0f) ",a,b,c,d);falg=1;}

if(Mi(c,d)!=0&&Ad(a,Di(b,Mi(c,d)))==24){printf("%2.0f+%2.0f/(%2.0f-%2.0f) ",a,b,c,d);falg=1;}

if(Mu(c,d)!=0&&Ad(a,Di(b,Mu(c,d)))==24){printf("%2.0f+%2.0f/%2.0f*%2.0f ",a,b,c,d);falg=1;}

if(d!=0&&Di(c,d)!=0&&Ad(a,Di(b,Di(c,d)))==24){printf("%2.0f+%2.0f/%2.0f/%2.0f ",a,b,c,d);falg=1;}

if(Mi(a,Ad(b,Ad(c,d)))==24){printf("%2.0f-%2.0f+%2.0f+%2.0f ",a,b,c,d);falg=1;}

if(Mi(a,Ad(b,Mi(c,d)))==24){printf("%2.0f-%2.0f+%2.0f-%2.0f ",a,b,c,d);falg=1;}

if(Mi(a,Ad(b,Mu(c,d)))==24){printf("%2.0f-%2.0f+%2.0f*%2.0f ",a,b,c,d);falg=1;}

if(d!=0&&Mi(a,Ad(b,Di(c,d)))==24){printf("%2.0f-%2.0f+%2.0f/%2.0f ",a,b,c,d);falg=1;}

if(Mi(a,Mi(b,Ad(c,d)))==24){printf("%2.0f-%2.0f-%2.0f+%2.0f ",a,b,c,d);falg=1;}

if(Mi(a,Mi(b,Mi(c,d)))==24){printf("%2.0f-%2.0f-%2.0f-%2.0f ",a,b,c,d);falg=1;}

if(Mi(a,Mi(b,Mu(c,d)))==24){printf("%2.0f-%2.0f-%2.0f*%2.0f ",a,b,c,d);falg=1;}

if(d!=0&&Mi(a,Mi(b,Di(c,d)))==24){printf("%2.0f-%2.0f-%2.0f/%2.0f ",a,b,c,d);falg=1;}

if(Mi(a,Mu(b,Ad(c,d)))==24){printf("%2.0f-%2.0f*(%2.0f+%2.0f) ",a,b,c,d);falg=1;}

if(Mi(a,Mu(b,Mi(c,d)))==24){printf("%2.0f-%2.0f*(%2.0f-%2.0f) ",a,b,c,d);falg=1;}

if(Mi(a,Mu(b,Mu(c,d)))==24){printf("%2.0f-%2.0f*%2.0f*%2.0f ",a,b,c,d);falg=1;}

if(d!=0&&Mi(a,Mu(b,Di(c,d)))==24){printf("%2.0f-%2.0f*%2.0f/%2.0f ",a,b,c,d);falg=1;}

if(Ad(c,d)!=0&&Mi(a,Di(b,Ad(c,d)))==24){printf("%2.0f-%2.0f/(%2.0f+%2.0f) ",a,b,c,d);falg=1;}

if(Mi(c,d)!=0&&Mi(a,Di(b,Mi(c,d)))==24){printf("%2.0f-%2.0f/(%2.0f-%2.0f) ",a,b,c,d);falg=1;}

if(Mu(c,d)!=0&&Mi(a,Di(b,Mu(c,d)))==24){printf("%2.0f-%2.0f/%2.0f*%2.0f ",a,b,c,d);falg=1;}

if(d!=0&&Di(c,d)&&Mi(a,Di(b,Di(c,d)))==24){printf("%2.0f-%2.0f/%2.0f/%2.0f ",a,b,c,d);falg=1;}

if(Mu(a,Ad(b,Ad(c,d)))==24){printf("%2.0f*(%2.0f+%2.0f+%2.0f) ",a,b,c,d);falg=1;}

if(Mu(a,Ad(b,Mi(c,d)))==24){printf("%2.0f*(%2.0f+%2.0f-%2.0f) ",a,b,c,d);falg=1;}

if(Mu(a,Ad(b,Mu(c,d)))==24){printf("%2.0f*(%2.0f+%2.0f*%2.0f) ",a,b,c,d);falg=1;}

if(d!=0&&Mu(a,Ad(b,Di(c,d)))==24){printf("%2.0f*(%2.0f+%2.0f/%2.0f) ",a,b,c,d);falg=1;}

if(Mu(a,Mi(b,Ad(c,d)))==24){printf("%2.0f*(%2.0f-%2.0f+%2.0f) ",a,b,c,d);falg=1;}

if(Mu(a,Mi(b,Mi(c,d)))==24){printf("%2.0f*(%2.0f-%2.0f-%2.0f) ",a,b,c,d);falg=1;}

if(Mu(a,Mi(b,Mu(c,d)))==24){printf("%2.0f*(%2.0f-%2.0f*%2.0f) ",a,b,c,d);falg=1;}

if(d!=0&&Mu(a,Mi(b,Di(c,d)))==24){printf("%2.0f*(%2.0f-%2.0f/%2.0f) ",a,b,c,d);falg=1;}

if(Mu(a,Mu(b,Ad(c,d)))==24){printf("%2.0f*(%2.0f*(%2.0f+%2.0f)) ",a,b,c,d);falg=1;}

if(Mu(a,Mu(b,Mi(c,d)))==24){printf("%2.0f*(%2.0f*(%2.0f-%2.0f)) ",a,b,c,d);falg=1;}

if(Mu(a,Mu(b,Mu(c,d)))==24){printf("%2.0f*%2.0f*%2.0f*%2.0f ",a,b,c,d);falg=1;}

if(d!=0&&Mu(a,Mu(b,Di(c,d)))==24){printf("%2.0f*%2.0f*%2.0f/%2.0f ",a,b,c,d);falg=1;}

if(Ad(c,d)!=0&&Mu(a,Di(b,Ad(c,d)))==24){printf("%2.0f*(%2.0f/(%2.0f+%2.0f)) ",a,b,c,d);falg=1;}

if(Mi(c,d)!=0&&Mu(a,Di(b,Mi(c,d)))==24){printf("%2.0f*(%2.0f/(%2.0f-%2.0f)) ",a,b,c,d);falg=1;}

if(Mu(c,d)!=0&&Mu(a,Di(b,Mu(c,d)))==24){printf("%2.0f*%2.0f/%2.0f*%2.0f ",a,b,c,d);falg=1;}

if(d!=0&&Di(c,d)!=0&&Mu(a,Di(b,Di(c,d)))==24){printf("%2.0f*%2.0f/%2.0f/%2.0f ",a,b,c,d);falg=1;}


if(Ad(b,Ad(c,d))!=0&&Di(a,Ad(b,Ad(c,d)))==24){printf("%2.0f/%2.0f+%2.0f+%2.0f ",a,b,c,d);falg=1;}

if(Ad(b,Mi(c,d))!=0&&Di(a,Ad(b,Mi(c,d)))==24){printf("%2.0f/%2.0f+%2.0f-%2.0f ",a,b,c,d);falg=1;}

if(Ad(b,Mu(c,d))!=0&&Di(a,Ad(b,Mu(c,d)))==24){printf("%2.0f/%2.0f+%2.0f*%2.0f ",a,b,c,d);falg=1;}

if(d!=0&&Ad(b,Di(c,d))!=0&&Di(a,Ad(b,Di(c,d)))==24){printf("%2.0f/%2.0f+%2.0f/%2.0f ",a,b,c,d);falg=1;}

if(Mi(b,Ad(c,d))!=0&&Di(a,Mi(b,Ad(c,d)))==24){printf("%2.0f/%2.0f-%2.0f+%2.0f ",a,b,c,d);falg=1;}

if(Mi(b,Mi(c,d))!=0&&Di(a,Mi(b,Mi(c,d)))==24){printf("%2.0f/%2.0f-%2.0f-%2.0f ",a,b,c,d);falg=1;}

if(Mi(b,Mu(c,d))!=0&&Di(a,Mi(b,Mu(c,d)))==24){printf("%2.0f/%2.0f-%2.0f*%2.0f ",a,b,c,d);falg=1;}

if(d!=0&&Mi(b,Di(c,d))!=0&&Di(a,Mi(b,Di(c,d)))==24){printf("%2.0f/%2.0f-%2.0f/%2.0f ",a,b,c,d);falg=1;}

if(Mu(b,Ad(c,d))!=0&&Di(a,Mu(b,Ad(c,d)))==24){printf("%2.0f/%2.0f*(%2.0f+%2.0f) ",a,b,c,d);falg=1;}

if(Mu(b,Mi(c,d))!=0&&Di(a,Mu(b,Mi(c,d)))==24){printf("%2.0f/%2.0f*(%2.0f-%2.0f) ",a,b,c,d);falg=1;}

if(Mu(b,Mu(c,d))!=0&&Di(a,Mu(b,Mu(c,d)))==24){printf("%2.0f/%2.0f*%2.0f*%2.0f ",a,b,c,d);falg=1;}

if(d!=0&&Mu(b,Di(c,d))!=0&&Di(a,Mu(b,Di(c,d)))==24){printf("%2.0f/%2.0f*%2.0f/%2.0f ",a,b,c,d);falg=1;}

if(Di(b,Ad(c,d))!=0&&Di(a,Di(b,Ad(c,d)))==24){printf("%2.0f/%2.0f/(%2.0f%2.0f) ",a,b,c,d);falg=1;}

if(Di(b,Mi(c,d))!=0&&Di(a,Di(b,Mi(c,d)))==24){printf("%2.0f%2.0f/(%2.0f%2.0f) ",a,b,c,d);falg=1;}

if(Di(b,Mu(c,d))!=0&&Di(a,Di(b,Mu(c,d)))==24){printf("%2.0f/%2.0f%2.0f*%2.0f ",a,b,c,d);falg=1;}

if(d!=0&&Di(b,Di(c,d))!=0&&Di(a,Di(b,Di(c,d)))==24){printf("%2.0f/%2.0f/%2.0f/%2.0f ",a,b,c,d);falg=1;}

}

void game24()
{
float a=0,b=0,c=0,d=0;


while(1)
{
puts("请输入a b c d 四个数 1~9");
scanf("%f %f %f %f",&a,&b,&c,&d);
printf(" 你输入的是: %3.0f%3.0f%3.0f%3.0f ",a,b,c,d);
if((a<10&&a>0)&&(b<10&&b>0)&&(c<10&&c>0)&&(d<10&&d>0)) break;
}
test(a,b,c,d);
test(a,b,d,c);
test(a,c,b,d);
test(a,c,d,b);
test(a,d,b,c);
test(a,d,c,b);
test(b,a,b,c);
test(b,a,c,b);
test(b,c,a,d);
test(b,c,d,a);
test(b,d,a,c);
test(b,d,c,a);
test(c,a,b,c);
test(c,a,c,b);
test(c,b,c,d);
test(c,b,d,c);
test(c,d,a,b);
test(c,d,b,a);
test(d,a,b,c);
test(d,a,c,b);
test(d,b,c,d);
test(d,b,d,c);
test(d,c,a,b);
test(d,c,b,a);

if(falg==0) puts("无解");

}