當前位置:首頁 » 編程語言 » 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("無解");

}