C語(yǔ)言代碼如下:
網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了忻府免費(fèi)建站歡迎大家使用!
#includestdio.h
int main()
{
int a,b;
printf("please enter two number:"); ? ?-----兩個(gè)數(shù)字用空格隔開,以回車鍵結(jié)束輸入。
scanf("%d %d",a,b);if(ab)
printf("The max is %d",a);
else if(ba)
printf("The max is %d",b);
else
printf("The two Numbers are the same");?
return 0;
}
運(yùn)行結(jié)果圖:
擴(kuò)展資料:
c語(yǔ)言特點(diǎn):
基本特性:
1、高級(jí)語(yǔ)言:它是把高級(jí)語(yǔ)言的基本結(jié)構(gòu)和語(yǔ)句與低級(jí)語(yǔ)言的實(shí)用性結(jié)合起來(lái)的工作單元。?
2、結(jié)構(gòu)式語(yǔ)言:結(jié)構(gòu)式語(yǔ)言的顯著特點(diǎn)是代碼及數(shù)據(jù)的分隔化,即程序的各個(gè)部分除了必要的信息交流外彼此獨(dú)立。這種結(jié)構(gòu)化方式可使程序?qū)哟吻逦?,便于使用、維護(hù)以及調(diào)試。
C 語(yǔ)言是以函數(shù)形式提供給用戶的,這些函數(shù)可方便的調(diào)用,并具有多種循環(huán)、條件語(yǔ)句控制程序流向,從而使程序完全結(jié)構(gòu)化。
3、代碼級(jí)別的跨平臺(tái):由于標(biāo)準(zhǔn)的存在,使得幾乎同樣的C代碼可用于多種操作系統(tǒng),如Windows、DOS、UNIX等等;也適用于多種機(jī)型。C語(yǔ)言對(duì)編寫需要進(jìn)行硬件操作的場(chǎng)合,優(yōu)于其它高級(jí)語(yǔ)言。?[
4、使用指針:可以直接進(jìn)行靠近硬件的操作,但是C的指針操作不做保護(hù),也給它帶來(lái)了很多不安全的因素。
C++在這方面做了改進(jìn),在保留了指針操作的同時(shí)又增強(qiáng)了安全性,受到了一些用戶的支持,但是,由于這些改進(jìn)增加語(yǔ)言的復(fù)雜度,也為另一部分所詬病。
Java則吸取了C++的教訓(xùn),取消了指針操作,也取消了C++改進(jìn)中一些備受爭(zhēng)議的地方,在安全性和適合性方面均取得良好的效果,但其本身解釋在虛擬機(jī)中運(yùn)行,運(yùn)行效率低于C++/C。
一般而言,C,C++,java被視為同一系的語(yǔ)言,它們長(zhǎng)期占據(jù)著程序使用榜的前三名。
特有特點(diǎn):
1.C語(yǔ)言是一個(gè)有結(jié)構(gòu)化程序設(shè)計(jì)、具有變量作用域(variable scope)以及遞歸功能的過(guò)程式語(yǔ)言。
2.C語(yǔ)言傳遞參數(shù)均是以值傳遞(pass by value),另外也可以傳遞指針(a pointer passed by value)。
3.不同的變量類型可以用結(jié)構(gòu)體(struct)組合在一起。
4.只有32個(gè)保留字(reserved keywords),使變量、函數(shù)命名有更多彈性。
5.部份的變量類型可以轉(zhuǎn)換,例如整型和字符型變量。
6.通過(guò)指針(pointer),C語(yǔ)言可以容易的對(duì)存儲(chǔ)器進(jìn)行低級(jí)控制。
7.預(yù)編譯處理(preprocessor)讓C語(yǔ)言的編譯更具有彈性。
優(yōu)缺點(diǎn):
優(yōu)點(diǎn)
1.簡(jiǎn)潔緊湊、靈活方便
C語(yǔ)言一共只有32個(gè)關(guān)鍵字,9種控制語(yǔ)句,程序書寫形式自由,區(qū)分大小寫。
把高級(jí)語(yǔ)言的基本結(jié)構(gòu)和語(yǔ)句與低級(jí)語(yǔ)言的實(shí)用性結(jié)合起來(lái)。
C 語(yǔ)言可以像匯編語(yǔ)言一樣對(duì)位、字節(jié)和地址進(jìn)行操作,而這三者是計(jì)算機(jī)最基本的工作單元。
2.運(yùn)算符豐富
C語(yǔ)言的運(yùn)算符包含的范圍很廣泛,共有34種運(yùn)算符。
C語(yǔ)言把括號(hào)、賦值、強(qiáng)制類型轉(zhuǎn)換等都作為運(yùn)算符處理。
從而使C語(yǔ)言的運(yùn)算類型極其豐富,表達(dá)式類型多樣化。靈活使用各種運(yùn)算符可以實(shí)現(xiàn)在其它高級(jí)語(yǔ)言中難以實(shí)現(xiàn)的運(yùn)算。
3、數(shù)據(jù)類型豐富
C語(yǔ)言的數(shù)據(jù)類型有:整型、實(shí)型、字符型、數(shù)組類型、指針類型、結(jié)構(gòu)體類型、共用體類型等。能用來(lái)實(shí)現(xiàn)各種復(fù)雜的數(shù)據(jù)結(jié)構(gòu)的運(yùn)算。并引入了指針概念,使程序效率更高。
4、表達(dá)方式靈活實(shí)用
C語(yǔ)言提供多種運(yùn)算符和表達(dá)式值的方法,對(duì)問(wèn)題的表達(dá)可通過(guò)多種途徑獲得,其程序設(shè)計(jì)更主動(dòng)、靈活。
它語(yǔ)法限制不太嚴(yán)格,程序設(shè)計(jì)自由度大,如對(duì)整型量與字符型數(shù)據(jù)及邏輯型數(shù)據(jù)可以通用等。
5、允許直接訪問(wèn)物理地址,對(duì)硬件進(jìn)行操作
由于C語(yǔ)言允許直接訪問(wèn)物理地址,可以直接對(duì)硬件進(jìn)行操作,因此它既具有高級(jí)語(yǔ)言的功能,又具有低級(jí)語(yǔ)言的許多功能,能夠像匯編語(yǔ)言一樣對(duì)位(bit)、字節(jié)和地址進(jìn)行操作,而這三者是計(jì)算機(jī)最基本的工作單元,可用來(lái)寫系統(tǒng)軟件。
6、生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高
C語(yǔ)言描述問(wèn)題比匯編語(yǔ)言迅速,工作量小、可讀性好,易于調(diào)試、修改和移植,而代碼質(zhì)量與匯編語(yǔ)言相當(dāng).
C語(yǔ)言一般只比匯編程序生成的目標(biāo)代碼效率低10%~20%。
7、可移植性好
C語(yǔ)言在不同機(jī)器上的C編譯程序,86%的代碼是公共的,所以C語(yǔ)言的編譯程序便于移植。在一個(gè)環(huán)境上用C語(yǔ)言編寫的程序,不改動(dòng)或稍加改動(dòng),就可移植到另一個(gè)完全不同的環(huán)境中運(yùn)行。
8、表達(dá)力強(qiáng)
C語(yǔ)言有豐富的數(shù)據(jù)結(jié)構(gòu)和運(yùn)算符。包含了各種數(shù)據(jù)結(jié)構(gòu),如整型、數(shù)組類型、指針類型和聯(lián)合類型等,用來(lái)實(shí)現(xiàn)各種數(shù)據(jù)結(jié)構(gòu)的運(yùn)算。
C語(yǔ)言的運(yùn)算符有34種,范圍很寬,靈活使用各種運(yùn)算符可以實(shí)現(xiàn)難度極大的運(yùn)算。
C語(yǔ)言能直接訪問(wèn)硬件的物理地址,能進(jìn)行位(bit)操作。兼有高級(jí)語(yǔ)言和低級(jí)語(yǔ)言的許多優(yōu)點(diǎn)。
它既可用來(lái)編寫系統(tǒng)軟件,又可用來(lái)開發(fā)應(yīng)用軟件,已成為一種通用程序設(shè)計(jì)語(yǔ)言。
另外C語(yǔ)言具有強(qiáng)大的圖形功能,支持多種顯示器和驅(qū)動(dòng)器。且計(jì)算功能、邏輯判斷功能強(qiáng)大。
缺點(diǎn)
1、 C語(yǔ)言的缺點(diǎn)主要表現(xiàn)在數(shù)據(jù)的封裝性上,這一點(diǎn)使得C在數(shù)據(jù)的安全性上有很大缺陷,這也是C和C++的一大區(qū)別。
2、 C語(yǔ)言的語(yǔ)法限制不太嚴(yán)格,對(duì)變量的類型約束不嚴(yán)格,影響程序的安全性,對(duì)數(shù)組下標(biāo)越界不作檢查等。
從應(yīng)用的角度,C語(yǔ)言比其他高級(jí)語(yǔ)言較難掌握。也就是說(shuō),對(duì)用C語(yǔ)言的人,要求對(duì)程序設(shè)計(jì)更熟練一些。
參考資料來(lái)源:C語(yǔ)言-百度百科
long A(int n,int m)
{
long sum = 1;
for(int i = m;i = m-(n-1);i--)
sum = sum * i;
return sum;
}
long P(int n)
{
return A(n,n);
}
long C1(int n,int m)
{
return A(m,n)/P(n);
}
long C2(int n,int m)
{
if (n == m || n == 0) return 1;
else
return C2(n,m-1)+C2(n-1,m-1);
}
long A(int n)
{
long sum;
for (int i = 0; i =n ;i++)
sum = sum + C2(i,n);
return sum;
}
五個(gè)函數(shù)如上,
話說(shuō)到底是編寫程序還是編寫函數(shù)?
階乘很容易就太大導(dǎo)致數(shù)據(jù)炸了的,需不需要用到大數(shù)運(yùn)算?
還有這樣一直調(diào)用不會(huì)棧溢出嗎?
是要用到有關(guān)鏈表的知識(shí),通過(guò)建立鏈表后,刪除修改結(jié)點(diǎn)就可以了
書上這些東西都有的。好好看看書吧。
#define NULL 0
#define TYPE struct stu
#define LEN sizeof(struct stu)
struct stu
{
int num;
int age;
struct stu *next;
};
TYPE * creat(int n)
{
struct stu *head,*pf,*pb;
int i;
for(i=0;in;i++)
{
pb=(TYPE *)malloc(LEN);
printf("input Number and Age\n");
scanf("%d%d",pb-num,pb-age);
if(i==0)
pf=head=pb;
else pf-next=pb;
pb-next=NULL;
pf=pb;
}
return(head);
}
TYPE * delete(TYPE * head,int num)
{
TYPE *pf,*pb;
if(head==NULL)
{ printf("\nempty list!\n");
goto end;}
pb=head;
while (pb-num!=num pb-next!=NULL)
{pf=pb;pb=pb-next;}
if(pb-num==num)
{ if(pb==head) head=pb-next;
else pf-next=pb-next;
printf("The node is deleted\n"); }
else
free(pb);
printf("The node not been found!\n");
end:
return head;
}
TYPE * insert(TYPE * head,TYPE * pi)
{
TYPE *pb ,*pf;
pb=head;
if(head==NULL)
{ head=pi;
pi-next=NULL; }
else
{
while((pi-numpb-num)(pb-next!=NULL))
{ pf=pb;
pb=pb-next; }
if(pi-num=pb-num)
{ if(head==pb) head=pi;
else pf-next=pi;
pi-next=pb; }
else
{ pb-next=pi;
pi-next=NULL; }
}
return head;
}
void print(TYPE * head)
{
printf("Number\t\tAge\n");
while(head!=NULL)
{
printf("%d\t\t%d\n",head-num,head-age);
head=head-next;
}
}
main()
{
TYPE * head,*pnum;
int n,num;
printf("input number of node: ");
scanf("%d",n);
head=creat(n);
print(head);
printf("Input the deleted number: ");
scanf("%d",num);
head=delete(head,num);
print(head);
printf("Input the inserted number and age: ");
pnum=(TYPE *)malloc(LEN);
scanf("%d%d",pnum-num,pnum-age);
head=insert(head,pnum);
print(head);
}