freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)20xx-文庫(kù)吧

2024-10-17 07:00 本頁(yè)面


【正文】 Polyn b)建立一元多項(xiàng)式函數(shù)Polyn Create(Polyn head,int m)求解并建立多項(xiàng)式a+b,Polyn Add(Polyn pa,Polyn pb)求解并建立多項(xiàng)式ab,Polyn Subtract(Polyn pa,Polyn pb)2求解并建立多項(xiàng)式a*b,Polyn Multiply(Polyn pa,Polyn pb)求解并建立多項(xiàng)式a/b,void Device(Polyn pa,Polyn pb)輸出函數(shù)輸出多項(xiàng)式,void Print(Polyn P)銷毀多項(xiàng)式函數(shù)釋放內(nèi)存,void Destroy(Polyn p)主函數(shù),void main()主程序的流程基函數(shù)調(diào)用說(shuō)明(1)typedef struct Polynomial {float coef。int expn。struct Polynomial *next。} *Polyn,Polynomial。在這個(gè)結(jié)構(gòu)體變量中coef表示每一項(xiàng)前的系數(shù),expn表示每一項(xiàng)的指數(shù),polyn為結(jié)點(diǎn)指針類型,屬于抽象數(shù)據(jù)類型通常由用戶自行定義,Polynomial表示的是結(jié)構(gòu)體中的數(shù)據(jù)對(duì)象名。(2)當(dāng)用戶輸入兩個(gè)一元多項(xiàng)式的系數(shù)和指數(shù)后,建立鏈表,存儲(chǔ)這兩個(gè)多項(xiàng)式,主要說(shuō)明如下:Polyn CreatePolyn(Polyn head,int m)建立一個(gè)頭指針為head、項(xiàng)數(shù)為m的一元多項(xiàng)式p=head=(Polyn)malloc(sizeof(struct Polynomial))。為輸入的多項(xiàng)式申請(qǐng)足夠的存儲(chǔ)空間p=(Polyn)malloc(sizeof(struct Polynomial))。建立新結(jié)點(diǎn)以接收數(shù)據(jù)Insert(p,head)。調(diào)用Insert函數(shù)插入結(jié)點(diǎn)這就建立一元多項(xiàng)式的關(guān)鍵步驟(3)由于多項(xiàng)式的系數(shù)和指數(shù)都是隨即輸入的,所以根據(jù)要求需要對(duì)多項(xiàng)式按指數(shù)進(jìn)行降冪排序。在這個(gè)程序模塊中,使用鏈表,根據(jù)對(duì)指數(shù)大小的比較,對(duì)各種情況進(jìn)行處理,此處由于反復(fù)使用指針對(duì)各個(gè)結(jié)點(diǎn)進(jìn)行定位,找到合適的位置再利用void Insert(Polyn p,Polyn h)進(jìn)行插入操作。(4)加、減、乘、除、的算法實(shí)現(xiàn):在該程序中,最關(guān)鍵的一步是實(shí)現(xiàn)四則運(yùn)算和輸出,由于加減算法原則是一樣,減法可通過(guò)系數(shù)為負(fù)的加法實(shí)現(xiàn);對(duì)于乘除算法的大致流程都是:首先建立多項(xiàng)式a*b,a/b,然后使用鏈表存儲(chǔ)所求出的乘積,商和余數(shù)。這就實(shí)現(xiàn)了多項(xiàng)式計(jì)算模塊的主要功能。(5)另一個(gè)子函數(shù)是輸出函數(shù) PrintPolyn();輸出最終的結(jié)果,算法是將最后計(jì)算合并的鏈表逐個(gè)結(jié)點(diǎn)依次輸出,便得到整鏈表,也就是最后的計(jì)算式計(jì)算結(jié)果。由于考慮各個(gè)結(jié)點(diǎn)的指數(shù)情況不同,分別進(jìn)行了判斷處理。四、程序新點(diǎn)通過(guò)多次寫程序,發(fā)現(xiàn)在程序在控制臺(tái)運(yùn)行時(shí)總是黑色的,本次寫程序就想著改變一下,于是經(jīng)過(guò)查資料利用system(“Color E0”)??梢院瘮?shù)解決,這里“E0,”E是控制臺(tái)背景顏色,0是控制臺(tái)輸出字體顏色。五、設(shè)計(jì)中遇到的問(wèn)題及解決辦法首先是,由于此次課程設(shè)計(jì)里使用指針使用比較多,自己在指針多的時(shí)候易腦子混亂出錯(cuò),對(duì)于此問(wèn)題我是采取比較笨的辦法在稿紙上寫明白后開始進(jìn)行 4代碼編寫。其次是,在寫除法模塊時(shí)比較復(fù)雜,自己通過(guò)查資料最后成功寫出除法模塊功能。最后是,前期分析不足開始急于寫代碼,中途出現(xiàn)各種問(wèn)題,算是給自己以后設(shè)計(jì)時(shí)的一個(gè)經(jīng)驗(yàn)吧。六、測(cè)試(程序截圖)七、總結(jié)通過(guò)本次應(yīng)用C語(yǔ)言設(shè)計(jì)一元多項(xiàng)式基本計(jì)算程序,使我更加鞏固了C語(yǔ)言程序設(shè)計(jì)的知識(shí),以前對(duì)指針這一點(diǎn)使用是比較模糊,現(xiàn)在通過(guò)此次課程設(shè)計(jì)對(duì)指針理解的比較深刻了。而且對(duì)于數(shù)據(jù)結(jié)構(gòu)的相關(guān)算法和函數(shù)的調(diào)用方面知識(shí)的加深。本次的課程設(shè)計(jì),一方面提高了自己獨(dú)立思考處理問(wèn)題的能力;另一方面使自己再設(shè)計(jì)開發(fā)程序方面有了一定的小經(jīng)驗(yàn)和想法,對(duì)自己以后學(xué)習(xí)其他語(yǔ)言程序設(shè)計(jì)奠定了一定的基礎(chǔ)。八、指導(dǎo)老師評(píng)語(yǔ)及成績(jī)附錄:(課程設(shè)計(jì)代碼)include include include typedef struct Polynomial {float coef。6int expn。struct Polynomial *next。} *Polyn,Polynomial。//Polyn為結(jié)點(diǎn)指針類型 void Insert(Polyn p,Polyn h){if(pcoef==0)free(p)。//系數(shù)為0的話釋放結(jié)點(diǎn)else{Polyn q1,q2。q1=h。q2=hnext。while(q2amp。amp。pexpnexpn)//查找插入位置{q1=q2。q2=q2next。}if(q2amp。amp。pexpn==q2expn)//將指數(shù)相同相合并 {q2coef+=pcoef。free(p)。if(!q2coef)//系數(shù)為0的話釋放結(jié)點(diǎn){ q1next=q2next。free(q2)。}}else { pnext=q2。q1next=p。}//指數(shù)為新時(shí)將結(jié)點(diǎn)插入} 7} //建立一個(gè)頭指針為head、項(xiàng)數(shù)為m的一元多項(xiàng)式 Polyn Create(Polyn head,int m){int i。Polyn p。p=head=(Polyn)malloc(sizeof(struct Polynomial))。headnext=NULL。for(i=0。i{p=(Polyn)malloc(sizeof(struct Polynomial))。//建立新結(jié)點(diǎn)以接收數(shù)據(jù)printf(“請(qǐng)輸入第%d項(xiàng)的系數(shù)與指數(shù):”,i+1)。scanf(“%f %d”,amp。pcoef,amp。pexpn)。Insert(p,head)。//調(diào)用Insert函數(shù)插入結(jié)點(diǎn)}return head。} //銷毀多項(xiàng)式p void Destroy(Polyn p){Polyn q1,q2。q1=pnext。8q2=q1next。while(q1next){free(q1)。q1=q2。//指針后移q2=q2next。} } //輸出多項(xiàng)式p int Print(Polyn P){Polyn q=Pnext。int flag=1。//項(xiàng)數(shù)計(jì)數(shù)器if(!q)//若多項(xiàng)式為空,輸出0{putchar(39。039。)。printf(“n”)。return。}while(q){if(qcoef0amp。amp。flag!=1)putchar(39。+39。)。//系數(shù)大于0且不是第一項(xiàng) 9if(qcoef!=1amp。amp。qcoef!=1)//系數(shù)非1或1的普通情況{printf(“%g”,qcoef)。if(qexpn==1)putchar(39。X39。)。else if(qexpn)printf(“X^%d”,qexpn)。}else{if(qcoef==1){if(!qexpn)putchar(39。139。)。else if(qexpn==1)putchar(39。X39。)。else printf(“X^%d”,qexpn)。}if(qcoef==1){if(!qexpn)printf(“1”)。else if(qexpn==1)printf(“X”)。else printf(“X^%d”,qexpn)。}}q=qnext。flag++。}printf(“n”)。} int pare(Polyn a,Polyn b){if(aamp。amp。b){if(!b||aexpnbexpn)return 1。else if(!a||aexpnexpn)return1。else return 0。}else if(!aamp。amp。b)return1。//a多項(xiàng)式已空,但b多項(xiàng)式非空else return 1。//b多項(xiàng)式已空,但a多項(xiàng)式非空 } //求解并建立多項(xiàng)式a+b,返回其頭指針 Polyn Add(Polyn pa,Polyn pb){Polyn qa=panext。Polyn qb=pbnext。Polyn headc,hc,qc。hc=(Polyn)malloc(sizeof(struct Polynomial))。//建立頭結(jié)點(diǎn) 11hcnext=NULL。headc=hc。while(qa||qb){qc=(Polyn)malloc(sizeof(struct Polynomial))。switch(pare(qa,qb)){case 1:qccoef=qacoef。qcexpn=qaexpn。qa=qanext。break。case 0:qccoef=qacoef+qbcoef。qcexpn=qaexpn。qa=qanext。qb=qbnext。break。case1:qccoef=qbcoef。qcexpn=qbexpn。qb=qbnext。break。12}if(qccoef!=0){qcnext=hcnext。hcnext=qc。hc=qc。}else free(qc)。//當(dāng)相加系數(shù)為0時(shí),釋放該結(jié)點(diǎn)}return headc。} //求解并建立多項(xiàng)式ab,返回其頭指針 Polyn Subtract(Polyn pa,Polyn pb){Polyn h=pb。Polyn p=pbnext。Polyn pd。while(p)//將pb的系數(shù)取反{ pcoef*=1。p=pnext。}pd=Add(pa,
點(diǎn)擊復(fù)制文檔內(nèi)容
合同協(xié)議相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1