1. 請幫我推薦幾個比較智能的c語言開發工具,有代碼提示的那種,謝謝
您好,1、VC6:這個是最經典的一個C/C++開發工具,畢竟是微軟的東西,所以非常好用。不過VC6的主要缺點是體積太大,有的同學是在網吧、學校機房等場合學習編程,如果電腦上沒有VC6的話就需要下載(安裝包要500MB左右)、安裝,非常耗時。而且VC6和Vista系統、卡巴斯基等軟體有沖突,經常崩潰。畢竟是98年的軟體了,微軟已經不提供支持了。
2、VC2005/VC2008:也被稱為VC7,它是VC6的升級版本,支持新的C/C++語法標准以及新的庫文件。同時VC7繼承了VC6的所有優點,而且繼承並發揚了VC6體積大的「優點」,一個安裝包最小也要1G,完整安裝要3G。
3、Dev C++:曾經非常牛氣的一個免費的C/C++開發工具,體積非常小,只有9M多一點,代碼高亮、自動完成等都做的非常好。不過Dev C++穩定性不是很好,經常崩潰,而且Dev C++最近一次更新是在2005年,可以看到作者已經放棄了這個軟體,因此那些Bug也無法被修改了。Dev C++有官方中文語言包。
4、Code::Blocks:目前最如日中天的開源且免費的C/C++開發工具,跨平台,可以在Windows/Linux等平台下運行,體積比較小,只有不到20M。Code::Blocks一直在飛速發展,因此支持最新的C/C++語法和最新的庫文件。因此很多專業開發人員都推薦使用Code::Blocks。不過Code::Blocks的代碼智能提示和自動完成功能做的不是很好,這恰恰是對於初學者來說比較重要的地方。而且Code::Blocks沒有官方中文語言包,滿屏幕的英文對於初學者來說難度比較大。
5、C-Free:國產的C/C++開發工具。體積非常小,只有不到9M。C-Free的代碼智能提示和自動完成、代碼高亮以及代碼導航等功能做的非常好,可以說是無可挑剔,這對初學者來說是最重要的;C-Free的啟動速度也非常快。國產軟體肯定是中文界面了,:)。
6、Pelles C:非常強大的C語言開發工具。比C-Free還好用,不過缺點是沒有中文版的。
2. 怎麼用C語言編寫人工智慧程序
如果是沒有學習過的話,有一定的難度,建議先去學習。
人工智慧代表的范圍太大了 C是必不可少的一部分 不能說是有直接關系 可以說是一個必備的組成部分;
人工智慧實際的范圍和實際應用:機器視覺,指紋識別,人臉識別,視網膜識別,虹膜識別,掌紋識別,專家系統,自動規劃,智能搜索,定理證明,博弈,自動程序設計,智能控制,機器人學,語言和圖像理解,遺傳編程等,
其中幾項和C語言、自動化、必不可分。
能力有限,不熟悉人工智慧這塊。
3. 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不要求用戶在程序 中寫一些用來指示內存分配的說明語句,全部內存必須動態的分配,直到 沒有空間時才開始收集無用單元。
4. c語言 編寫一個智能聊天工具
可以使用智能聊天機器人的介面來做
下面是一個簡單的使用小耗子機器人提供的介面的聊天代碼
#include<stdio.h>
#include<string.h>
#include<curl/curl.h>
#include<stdlib.h>
#defineBOT_SER"https://brisk.eu.org/smbot/sm.php"
typedefstruct
{
size_tlen;
char*msg;
}MSG;
size_tget_data(char*ptr,size_tsize,size_tnmemb,MSG*msg)
{
msg->msg=realloc(msg->msg,msg->len+nmemb+1);
snprintf(msg->msg+msg->len,nmemb,"%s",ptr);
msg->len+=nmemb;
returnnmemb;
}
intmain(intargc,char**argv)
{
CURL*curl;
MSGmsg;
charbuf[1024];
chardata[2048];
curl=curl_easy_init();
msg.len=0;
msg.msg=NULL;
curl_easy_setopt(curl,CURLOPT_WRITEFUNCTION,get_data);
curl_easy_setopt(curl,CURLOPT_WRITEDATA,&msg);
curl_easy_setopt(curl,CURLOPT_USERAGENT,"CBot/FromBai");
while(1)
{
printf(">");
scanf("%s",buf);
if(strcmp(buf,"exit")==0)
break;
snprintf(data,sizeof(data),"%s?msg=%s",BOT_SER,buf);
curl_easy_setopt(curl,CURLOPT_URL,data);
curl_easy_perform(curl);
if(msg.len)
{
printf("%s ",msg.msg);
msg.len=0;
free(msg.msg);
msg.msg=NULL;
}
}
curl_easy_cleanup(curl);
return0;
}
5. 人工智慧與c語言有直接關系嗎
人工智慧建立在演算法上,而不是編程語言上。
C語言可以寫人工智慧演算法。
C語言可以寫能寫C語言的人工智慧演算法。
C語言甚至能寫能寫出能寫出C語言的人工智慧演算法的人工智慧演算法。
C語言甚至都能。。。
6. 計算機智能算數的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("無解");
}