![數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)一元多項(xiàng)式的加減法運(yùn)算_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/15/ef2cafd4-9ef8-45d9-8097-6d84bd150cd5/ef2cafd4-9ef8-45d9-8097-6d84bd150cd51.gif)
![數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)一元多項(xiàng)式的加減法運(yùn)算_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/15/ef2cafd4-9ef8-45d9-8097-6d84bd150cd5/ef2cafd4-9ef8-45d9-8097-6d84bd150cd52.gif)
![數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)一元多項(xiàng)式的加減法運(yùn)算_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/15/ef2cafd4-9ef8-45d9-8097-6d84bd150cd5/ef2cafd4-9ef8-45d9-8097-6d84bd150cd53.gif)
![數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)一元多項(xiàng)式的加減法運(yùn)算_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/15/ef2cafd4-9ef8-45d9-8097-6d84bd150cd5/ef2cafd4-9ef8-45d9-8097-6d84bd150cd54.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、.武漢理工大學(xué)華夏學(xué)院課程設(shè)計(jì)報(bào)告書課程名稱:數(shù)據(jù)結(jié)構(gòu)與算法分析題目 :用 C 語(yǔ)言實(shí)現(xiàn)一元多項(xiàng)式的加減法運(yùn)算系名:信息工程系專業(yè)班級(jí):物聯(lián)網(wǎng)工程 1122班姓名:隋明超學(xué)號(hào):10213312201指導(dǎo)教師 :司曉梅2014年1月3日.武漢理工大學(xué)華夏學(xué)院信息工程系課程設(shè)計(jì)任務(wù)書課程名稱:數(shù)據(jù)結(jié)構(gòu)與算法分析指導(dǎo)教師:司曉梅班級(jí)名稱:物聯(lián)網(wǎng) 1121-2 開課系、教研室:信息系計(jì)算機(jī)一、課程設(shè)計(jì)目的與任務(wù)數(shù)據(jù)結(jié)構(gòu) 課程設(shè)計(jì)是為訓(xùn)練學(xué)生的數(shù)據(jù)組織能力和提高程序設(shè)計(jì)能力而設(shè)置的增強(qiáng)實(shí)踐能力的課程。目的:學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)課程,旨在使學(xué)生學(xué)會(huì)分析研究數(shù)據(jù)對(duì)象的特性,學(xué)會(huì)數(shù)據(jù)的組織方法,以便選擇合適的數(shù)據(jù)的邏
2、輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)以及相應(yīng)操作,把現(xiàn)實(shí)世界中的問題轉(zhuǎn)換為計(jì)算機(jī)內(nèi)部的表示和處理,這就是一個(gè)良好的程序設(shè)計(jì)技能訓(xùn)練的過程。提高學(xué)生的程序設(shè)計(jì)能力、掌握基本知識(shí)、 基本技能, 提高算法設(shè)計(jì)質(zhì)量與程序設(shè)計(jì)素質(zhì)的培養(yǎng)就是本門課程的課程設(shè)計(jì)的目的。任務(wù):根據(jù)題目要求,完成算法設(shè)計(jì)與程序?qū)崿F(xiàn),并按規(guī)定寫出課程設(shè)計(jì)報(bào)告。二、課程設(shè)計(jì)的內(nèi)容與基本要求設(shè)計(jì)題目:用C語(yǔ)言實(shí)現(xiàn)一元多項(xiàng)式的加減法計(jì)算問題描述輸入并建立兩個(gè)多項(xiàng)式并輸出多項(xiàng)式設(shè)計(jì)一個(gè)程序:對(duì)兩個(gè)多項(xiàng)式進(jìn)行加、減法運(yùn)算,建立一個(gè)新多項(xiàng)式并輸出。實(shí)現(xiàn)提示:選擇單鏈表存儲(chǔ)多項(xiàng)式具體要完成的任務(wù)是:A. 編制完成上述問題的 C 語(yǔ)言程序、進(jìn)行程序調(diào)試并能得出正確
3、的運(yùn)行結(jié)果。B. 寫出規(guī)范的課程設(shè)計(jì)報(bào)告書;三、課程設(shè)計(jì)步驟及時(shí)間進(jìn)度和場(chǎng)地安排時(shí)間:本課程設(shè)計(jì)安排在第18 周地點(diǎn):現(xiàn)代教育中心具體時(shí)間安排如下:第一天:布置題目,確定任務(wù)、查找相關(guān)資料第二天第四天:功能分析,編寫程序,調(diào)試程序、運(yùn)行系統(tǒng);第五天上午:撰寫設(shè)計(jì)報(bào)告;第五天下午:程序驗(yàn)收、答辯。四、課程設(shè)計(jì)考核及評(píng)分標(biāo)準(zhǔn)課程設(shè)計(jì)考核將綜合考慮學(xué)生的系統(tǒng)設(shè)計(jì)方案、運(yùn)行結(jié)果、 課程設(shè)計(jì)報(bào)告書的質(zhì)量、態(tài)度、考勤、答辯情況等各因素。具體評(píng)分標(biāo)準(zhǔn)如下:( 1)設(shè)計(jì)方案正確,具有可行性、創(chuàng)新性;30分( 2)系統(tǒng)開發(fā)效果較好;20分.( 3)設(shè)計(jì)報(bào)告規(guī)范、課程設(shè)計(jì)報(bào)告質(zhì)量高;20分( 4)課程設(shè)計(jì)答辯時(shí),
4、問題回答正確;20分( 5)態(tài)度認(rèn)真、刻苦鉆研、遵守紀(jì)律;10分按上述五項(xiàng)分別記分后求和,總分按五級(jí)制記載最后成績(jī)。優(yōu)秀( 100 90分),良好( 80 89分),中等( 70 79分),及格( 60 69分),不及格( 0 59分).1. 設(shè)計(jì)題目:用 C語(yǔ)言實(shí)現(xiàn)一元多項(xiàng)式的加減法運(yùn)算2. 開發(fā)環(huán)境、采用的語(yǔ)言 :(1)Windows XP中文操作系統(tǒng)(2) Visual C+ 6.03. 設(shè)計(jì)思想(對(duì)你的整個(gè)設(shè)計(jì)思路作出說明):3.1 問題描述:輸入并建立兩個(gè)多項(xiàng)式并輸出多項(xiàng)式,對(duì)兩個(gè)多項(xiàng)式進(jìn)行加、減法運(yùn)算, 建立一個(gè)新多項(xiàng)式并輸出。3.2 問題思考:用 C 語(yǔ)言編寫一段程序, 該程序的
5、功能相當(dāng)于一個(gè)一元多項(xiàng)式的計(jì)算器, 能夠?qū)崿F(xiàn)按照指數(shù)降冪建立并輸出多項(xiàng)式, 并且能夠完成多個(gè)多項(xiàng)式的相加、 相減運(yùn)算及結(jié)果輸出的功能。此程序的數(shù)據(jù)結(jié)構(gòu)是選擇用帶表頭結(jié)點(diǎn)的單鏈表存儲(chǔ)多項(xiàng)式。雖然一元多項(xiàng)式可以用順序和鏈表存儲(chǔ)結(jié)果表示,但順序結(jié)構(gòu)的最大長(zhǎng)度很難確定。比如當(dāng)多項(xiàng)式的系數(shù)較大時(shí),此時(shí)就會(huì)浪費(fèi)存儲(chǔ)空間, 所以應(yīng)該選用鏈表結(jié)構(gòu)來存儲(chǔ)一元多項(xiàng)式。但鏈表的結(jié)構(gòu)體可以用來存儲(chǔ)多項(xiàng)式的系數(shù)、指數(shù)、下一個(gè)指針3 個(gè)元素,這樣便于實(shí)現(xiàn)任意多項(xiàng)式的加法、減法運(yùn)算。3.3 功能設(shè)計(jì):( 1)多項(xiàng)式建立:提示用戶輸入兩個(gè)多項(xiàng)式A 和 B,輸入形式為:1) 先輸入多項(xiàng)式 A 的項(xiàng)數(shù),回車2) 輸入多項(xiàng)式 A
6、第一項(xiàng)的系數(shù),空格隔開輸入多項(xiàng)式A 第一項(xiàng)的指數(shù),3) 繼續(xù)輸入多項(xiàng)式 A 的其他項(xiàng),輸入方式與上同;4) 再建立多項(xiàng)式 B,數(shù)據(jù)輸入方式與建立多項(xiàng)式A 相同。(2)功能項(xiàng):設(shè)計(jì)一個(gè)功能項(xiàng),分別為1. 輸出多項(xiàng)式a 和 b2.輸出多項(xiàng)式a+b.3.輸出多項(xiàng)式a-b4.退出(3)執(zhí)行操作:此時(shí)用戶可以根據(jù)需要選擇功能項(xiàng)中四項(xiàng)進(jìn)行輸出。4. 程序總的流程圖:通過設(shè)計(jì)思想,可設(shè)計(jì)出如圖4-1 所示的一元多項(xiàng)式總流程圖:開始申請(qǐng)結(jié)點(diǎn)空間輸入多項(xiàng)式的項(xiàng)數(shù)輸入多項(xiàng)式各項(xiàng)的系數(shù)M,指數(shù)N輸出已輸入的多項(xiàng)式否是否輸入正確是進(jìn)行多項(xiàng)式的輸出、加法、減法運(yùn)算結(jié)束圖 4.1 一元多項(xiàng)式總流程圖5. 數(shù)據(jù)結(jié)構(gòu)說明及模
7、塊算法說明(或流程圖) :、5.1 存儲(chǔ)結(jié)構(gòu):一元多項(xiàng)式的表示在計(jì)算機(jī)內(nèi)可以用鏈表來表示,為了節(jié)省存儲(chǔ)空間,只存儲(chǔ)多項(xiàng)式中系數(shù)非零的項(xiàng)。 鏈表中的每一個(gè)結(jié)點(diǎn)存放多項(xiàng)式的一個(gè)系數(shù)非零項(xiàng),它包含三個(gè)域, 分別存放該項(xiàng)的系數(shù)、 指數(shù)以及指向下一個(gè)多項(xiàng)式項(xiàng)結(jié)點(diǎn)的指針。創(chuàng)建一元多項(xiàng)式鏈表,對(duì)一元多項(xiàng)式的運(yùn)算中會(huì)出現(xiàn)的各種可能情況進(jìn)行分析,實(shí)現(xiàn)一元多項(xiàng)式的相加、相減操作。5.2 基本算法:( 1)一元多項(xiàng)式的建立:輸入多項(xiàng)式采用頭插法的方式,輸入多項(xiàng)式中的一個(gè)項(xiàng)的系數(shù)和指數(shù),就產(chǎn)生一個(gè)新.的結(jié)點(diǎn),建立起它的右指針,并用頭結(jié)點(diǎn)指向它;為了判斷一個(gè)多項(xiàng)式是否輸入結(jié)束,定義一個(gè)結(jié)束標(biāo)志,當(dāng)輸入非0 時(shí)就繼續(xù);輸
8、入為0 時(shí),就結(jié)束一個(gè)多項(xiàng)式的輸入。( 2)顯示一元多項(xiàng)式:如果系數(shù)是大于 0 的話就輸出 <+系數(shù) M指數(shù) >的形式; 如果系數(shù)是小于 0 的話就輸出<系數(shù) x 指數(shù) >的形式;如果指數(shù)為 0 的話就直接輸出 <系數(shù) >;如果指數(shù)是 1 的話就直接輸出<+M>;如果指數(shù)是 -1 的話,就直接輸出 <-M>。( 3)一元多項(xiàng)式加法運(yùn)算:從兩個(gè)多項(xiàng)式的頭部開始判斷,當(dāng)兩個(gè)多項(xiàng)式的某一項(xiàng)度不為空時(shí),假設(shè)P、 Q分別指向多項(xiàng)式 A 和多項(xiàng)式 B 中當(dāng)前進(jìn)行比較的結(jié)點(diǎn), 然后比較兩個(gè)結(jié)點(diǎn)中的指數(shù)項(xiàng),有三種情況: 1、當(dāng) P 所指結(jié)點(diǎn)的指數(shù)小于
9、 Q的話,就應(yīng)該復(fù)制 P 的結(jié)點(diǎn)到多項(xiàng)式鏈中。2、 P 所指結(jié)點(diǎn)的指數(shù)如果大于 Q的指數(shù)的話,就應(yīng)該復(fù)制Q的結(jié)點(diǎn)到多項(xiàng)式鏈中。3、當(dāng) P 所指結(jié)點(diǎn)的指數(shù)等于 Q所指結(jié)點(diǎn)的指數(shù)時(shí),則將兩個(gè)結(jié)點(diǎn)中的系數(shù)相加,若和不為0,則修改 P 所指結(jié)點(diǎn)的系數(shù)值,同時(shí)釋放Q所指結(jié)點(diǎn);若和為0,從多項(xiàng)式A 的鏈表中刪除相應(yīng)結(jié)點(diǎn),并釋放P、 Q所指結(jié)點(diǎn)。加法流程圖如圖5.2-1所示:.開始定義存儲(chǔ)結(jié)果的空鏈r是存儲(chǔ)多項(xiàng)式1 的空鏈 P 是否為空否是存儲(chǔ)多項(xiàng)式 2 的空鏈 Q 是否為空否直接把q 中把 p 中各項(xiàng)系數(shù)同指數(shù)項(xiàng)系數(shù)相加后存入r各項(xiàng)存入r改變符號(hào)后存入r輸出存儲(chǔ)多項(xiàng)式的和的鏈r合并同類項(xiàng)結(jié)束圖 5.2-1
10、 一元多項(xiàng)式加法運(yùn)算流程圖( 4)一元多項(xiàng)式的減法從兩個(gè)多項(xiàng)式的頭部開始判斷,當(dāng)兩個(gè)多項(xiàng)式的某一項(xiàng)度不為空時(shí),假設(shè)P、Q分別指向多項(xiàng)式 A 和多項(xiàng)式 B 中當(dāng)前進(jìn)行比較的結(jié)點(diǎn), 然后比較兩個(gè)結(jié)點(diǎn)中的指數(shù)項(xiàng), 有三種情況: 1、當(dāng) P 所指結(jié)點(diǎn)的指數(shù)小于 Q的話,就應(yīng)該復(fù)制 P 的結(jié)點(diǎn)到多項(xiàng)式鏈中。 2、 P 所指結(jié)點(diǎn)的指數(shù)如果大于 Q的指數(shù)的話, 就應(yīng)該復(fù)制 Q的結(jié)點(diǎn)到多項(xiàng)式鏈中, 并將建立的結(jié)點(diǎn)系數(shù)變?yōu)橄喾磾?shù)。 3、當(dāng) P 所指結(jié)點(diǎn)的指數(shù)等于Q所指結(jié)點(diǎn)的指數(shù)時(shí),并將Q的結(jié)點(diǎn)系數(shù)變?yōu)橄喾磾?shù),并將兩個(gè)結(jié)點(diǎn)中的系數(shù)相加,若和不為0,則修改P 所指結(jié)點(diǎn)的系數(shù)值,同時(shí)釋放Q.所指結(jié)點(diǎn);若和為0,從多項(xiàng)
11、式A 的鏈表中刪除相應(yīng)結(jié)點(diǎn),并釋放P、 Q 所指結(jié)點(diǎn)。減法流程圖如圖5.2-2所示:開始定義存儲(chǔ)結(jié)果的空鏈r是存儲(chǔ)多項(xiàng)式1 的空鏈 P 是否為空否是存儲(chǔ)多項(xiàng)式2 的空鏈 Q 是否為空否直接把 q 中把 p 中各項(xiàng)系數(shù)同指數(shù)項(xiàng)系數(shù)相加后存入r各項(xiàng)存入 r改變符號(hào)后存入 r中中輸出存儲(chǔ)多項(xiàng)式的和的鏈r合并同類項(xiàng)結(jié)束圖 5.2-2 一元多項(xiàng)式減法運(yùn)算流程圖6. 程序運(yùn)行說明及結(jié)果截圖:6.1 歡迎界面:.程序打開,首先顯示上的是歡迎界面,在歡迎界面下方有第一個(gè)多項(xiàng)式的輸入模塊。圖 6.1歡迎界面6.2 輸入界面:看到輸入界面后, 輸入第一個(gè)多項(xiàng)式的項(xiàng)數(shù), 接下來輸入這個(gè)多項(xiàng)式第一項(xiàng)的系數(shù),空格繼續(xù)輸
12、入這個(gè)多項(xiàng)式的指數(shù)。 回車?yán)^續(xù)輸入下一項(xiàng), 輸入完后回車輸入下一個(gè)多項(xiàng)式圖 6.2 輸入界面6.3 功能選項(xiàng):當(dāng)數(shù)據(jù)輸入完成后進(jìn)入功能選項(xiàng),在功能選項(xiàng)可以選擇自己想要實(shí)現(xiàn)的功能進(jìn)行操作。.圖 6.3 功能選項(xiàng)6.4 多項(xiàng)式輸出:在執(zhí)行操作中選擇1,輸出多項(xiàng)式a 和 b。圖 6.4 多項(xiàng)式輸出6.5 多項(xiàng)式相加:在執(zhí)行操作中選擇2,輸出多項(xiàng)式a+b。.圖 6.5 多項(xiàng)式相加6.6 多項(xiàng)式相減:在執(zhí)行操作中選擇3,輸出多項(xiàng)式a-b 。圖 6.6 多項(xiàng)式相減7. 程序調(diào)試及測(cè)試過程記載:本次課程設(shè)計(jì)中,經(jīng)過反復(fù)調(diào)試,程序已經(jīng)可以正常運(yùn)行。在設(shè)計(jì)該算法時(shí),出現(xiàn)了一些問題, 例如在建立鏈表時(shí)頭指針的設(shè)立
13、導(dǎo)致了之后運(yùn)用到相關(guān)的指針時(shí)沒能很好的移動(dòng)指針出現(xiàn)了數(shù)據(jù)重復(fù)輸出或是輸出系統(tǒng)缺省值,不能實(shí)現(xiàn)算法。實(shí)現(xiàn)加法時(shí)該鏈表并沒有向通常那樣通過建立第三個(gè)鏈表來存放運(yùn)算結(jié)果,而是再度利用了鏈表之一來進(jìn)行節(jié)點(diǎn)的比較插入刪除等操作。為了使輸入數(shù)據(jù)按指數(shù)降序排列,可在數(shù)據(jù)的輸入后先做一個(gè)節(jié)點(diǎn)的排序函數(shù),通過對(duì)鏈表排序后再進(jìn)行之后加減運(yùn)算。.8. 總結(jié)及心得體會(huì):在這次課程設(shè)計(jì)中, 我遇到了不少困難, 但是在我的堅(jiān)持和虛心請(qǐng)教中都得到順利解決。在這次課程設(shè)計(jì)中, 我發(fā)現(xiàn)理論必須和實(shí)踐相結(jié)合,才能真正學(xué)會(huì)程序設(shè)計(jì),才能完成一個(gè)課題。 在這次設(shè)計(jì)中我參考了不少書籍,從中學(xué)到了課堂中無法學(xué)到的許多東西,對(duì)此我感到很興
14、奮。 原來不斷的學(xué)習(xí),不斷的探索是苦中帶著甜,雖然經(jīng)歷了不少?gòu)澛?,?jīng)歷了不少挫折,但當(dāng)程序調(diào)試成功后,當(dāng)運(yùn)行能達(dá)到要求后,我感到十二分成就感。面對(duì)課題,要展現(xiàn)自信出來,這是成功的一半,在這個(gè)設(shè)計(jì)過程中,不懂的可以虛心向老師請(qǐng)教,與同學(xué)交流經(jīng)驗(yàn)。態(tài)度是成功的基石!在我這課題中, 關(guān)鍵在于對(duì)一元多項(xiàng)式的表示及相加的操作。這個(gè)實(shí)際問題, 在學(xué)習(xí)過的知識(shí)中找到一種合適的模型來模擬,數(shù)據(jù)結(jié)構(gòu)的選擇是主要,而對(duì)于編寫代碼, 所涉及的并不是很復(fù)雜, 對(duì)于鏈表數(shù)據(jù)存儲(chǔ)訪問方式,在 C 語(yǔ)言的學(xué)習(xí)過程中已經(jīng)有過很多講解,為了進(jìn)一步了解, 我還閱讀了一些數(shù)據(jù)結(jié)構(gòu)中關(guān)于鏈表的敘述。對(duì)于這個(gè)課題, 運(yùn)用 C 語(yǔ)言簡(jiǎn)單
15、一點(diǎn)的結(jié)構(gòu)化程序設(shè)計(jì)已足能滿足要求而不至于結(jié)構(gòu)過于復(fù)雜,為了簡(jiǎn)便的實(shí)現(xiàn)插入操作,我選擇了一個(gè)帶表頭結(jié)點(diǎn)的鏈表。在寫源代碼時(shí)要注意指針使用的正確性,為產(chǎn)生的新結(jié)點(diǎn)需及時(shí)分配存儲(chǔ)空間。 在設(shè)計(jì)中將問題抽象化,而完成后在運(yùn)行時(shí), 可以說是用抽象的數(shù)據(jù)模型來解決實(shí)際問題。 我的這個(gè)課題相比較于其他同學(xué)來說,是相對(duì)簡(jiǎn)單的一點(diǎn)的。在現(xiàn)實(shí)中,很多功能現(xiàn)在都沒法實(shí)現(xiàn), 還有不少操作需進(jìn)一步完善,這次程序設(shè)計(jì)有很多不足處,可能是因?yàn)榻?jīng)驗(yàn)不足, 對(duì)問題預(yù)期不夠等一些不可預(yù)見的原因所致,這些都是我以后要汲取的教訓(xùn)。9. 附錄:源代碼(注意要加上詳細(xì)的注釋)#include<stdio.h>#includ
16、e<malloc.h>typedef struct Polynomialfloat coef;int expn;struct Polynomial *next;*Polyn,Polynomial;/Polyn為結(jié)點(diǎn)指針類型void Insert(Polyn p,Polyn h)if(p->coef=0) free(p);/系數(shù)為 0 的話釋放結(jié)點(diǎn)elsePolyn q1,q2;.q1=h;q2=h->next;while(q2&&p->expn<q2->expn)/查找插入位置q1=q2;q2=q2->next;if(q2&
17、;&p->expn=q2->expn)/將指數(shù)相同相項(xiàng)合并q2->coef+=p->coef;free(p);if(!q2->coef)/系數(shù)為 0 的話釋放結(jié)點(diǎn)q1->next=q2->next;free(q2);else/指數(shù)為新時(shí)將結(jié)點(diǎn)插入p->next=q2;q1->next=p;/InsertPolyn CreatePolyn(Polyn head,int m)/建立一個(gè)頭指針為head、項(xiàng)數(shù)為m的一元多項(xiàng)式int i;Polyn p;p=head=(Polyn)malloc(sizeof(struct Polynomia
18、l);head->next=NULL;for(i=0;i<m;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",&p->coef,&p->expn);Insert(p,head);/調(diào)用 Insert函數(shù)插入結(jié)點(diǎn)return head;/CreatePolynvoid DestroyPolyn(Polyn p)/銷毀多項(xiàng)式p.Polyn q1,q2;q1=p->
19、next;q2=q1->next;while(q1->next)free(q1);q1=q2;/指針后移q2=q2->next;void PrintPolyn(Polyn P)Polyn q=P->next;int flag=1;/項(xiàng)數(shù)計(jì)數(shù)器if(!q) /若多項(xiàng)式為空,輸出0putchar('0');printf("n");return;while (q)if(q->coef>0&&flag!=1) putchar('+'); /系數(shù)大于0 且不是第一項(xiàng)if(q->coef!=1&a
20、mp;&q->coef!=-1)/系數(shù)非 1 或 -1 的普通情況printf("%g",q->coef);if(q->expn=1) putchar('X');else if(q->expn) printf("X%d",q->expn);elseif(q->coef=1)if(!q->expn) putchar('1');else if(q->expn=1) putchar('X');else printf("X%d",q->
21、;expn);if(q->coef=-1)if(!q->expn) printf("-1");else if(q->expn=1) printf("-X");else printf("-X%d",q->expn);.q=q->next;flag+;/whileprintf("n");/PrintPolynint compare(Polyn a,Polyn b)if(a&&b)if(!b|a->expn>b->expn) return 1;else if
22、(!a|a->expn<b->expn) return -1;else return 0;else if(!a&&b) return -1;/a多項(xiàng)式已空,但b 多項(xiàng)式非空else return 1;/b多項(xiàng)式已空,但a 多項(xiàng)式非空/comparePolyn AddPolyn(Polyn pa,Polyn pb)/求解并建立多項(xiàng)式a+b,返回其頭指針Polyn qa=pa->next;Polyn qb=pb->next;Polyn headc,hc,qc;hc=(Polyn)malloc(sizeof(struct Polynomial);/建立頭
23、結(jié)點(diǎn)hc->next=NULL;headc=hc;while(qa|qb)qc=(Polyn)malloc(sizeof(struct Polynomial);switch(compare(qa,qb)case 1:qc->coef=qa->coef;qc->expn=qa->expn;qa=qa->next;break;case 0:.qc->coef=qa->coef+qb->coef;qc->expn=qa->expn;qa=qa->next;qb=qb->next;break;case -1:qc->c
24、oef=qb->coef;qc->expn=qb->expn;qb=qb->next;break;/switchif(qc->coef!=0)qc->next=hc->next;hc->next=qc;hc=qc;else free(qc);/當(dāng)相加系數(shù)為0 時(shí),釋放該結(jié)點(diǎn)/whilereturn headc;/AddPolynPolyn SubtractPolyn(Polyn pa,Polyn pb)/求解并建立多項(xiàng)式a+b,返回其頭指針Polyn h=pb;Polyn p=pb->next;Polyn pd;while(p)/將 pb
25、的系數(shù)取反p->coef*=-1;p=p->next;pd=AddPolyn(pa,h);for(p=h->next;p;p=p->next)/恢復(fù) pb 的系數(shù).p->coef*=-1;return pd;/SubtractPolynint main()int m,n,flag=0;float x;Polyn pa=0,pb=0,pc,pd,pe,pf;/定義各式的頭指針,pa 與 pb 在使用前付初值NULLprintf("*歡迎您的使用*n");printf("請(qǐng)輸入多項(xiàng)式a 的項(xiàng)數(shù) :");scanf("%d",&m);pa=CreatePolyn(pa,m);/建立多項(xiàng)式aprintf("*n");printf("請(qǐng)輸入多項(xiàng)式b 的項(xiàng)數(shù) :");scanf("%d",&n);pb=CreatePolyn(pb,n);/建立多項(xiàng)式b/輸出菜單printf("*n");printf("功能項(xiàng): nt1.輸出多項(xiàng)式a 和 bnt2.建立多項(xiàng)式a+bnt3.建立多項(xiàng)式a-bn")
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 投標(biāo)委托書(15篇)
- 建筑工程施工項(xiàng)目承包合同書
- 細(xì)胞-乳腺癌課件
- 馬來酸麥角新堿聯(lián)合卡前列素氨丁三醇治療高危產(chǎn)后出血傾向二次剖宮產(chǎn)產(chǎn)婦的效果
- 中國(guó)企業(yè)智能化成熟度報(bào)告(2024) -企業(yè)智能化轉(zhuǎn)型進(jìn)入2.0時(shí)代
- 廣東省中山市高考語(yǔ)文模擬試題(含答案)
- 2025年養(yǎng)老行業(yè)前景與未來發(fā)展趨勢(shì)預(yù)測(cè)
- 2024年食品行業(yè)食品安全管理體系認(rèn)證合同
- 餐廳供貨協(xié)議合同協(xié)議范本模板
- 汽車修理廠承包合同模板
- 輸變電工程監(jiān)督檢查標(biāo)準(zhǔn)化清單-質(zhì)監(jiān)站檢查
- 【超星學(xué)習(xí)通】馬克思主義基本原理(南開大學(xué))爾雅章節(jié)測(cè)試網(wǎng)課答案
- 2024年中國(guó)工業(yè)涂料行業(yè)發(fā)展現(xiàn)狀、市場(chǎng)前景、投資方向分析報(bào)告(智研咨詢發(fā)布)
- 化工企業(yè)重大事故隱患判定標(biāo)準(zhǔn)培訓(xùn)考試卷(后附答案)
- 工傷賠償授權(quán)委托書范例
- 食堂餐具炊具供貨服務(wù)方案
- 唯物史觀課件
- 冀教版五年級(jí)上冊(cè)英語(yǔ)全冊(cè)單元測(cè)試卷(含期中期末試卷及聽力音頻)
- 信息資源管理(馬費(fèi)成-第三版)復(fù)習(xí)重點(diǎn)
- 郵輪外部市場(chǎng)營(yíng)銷類型
- GB/T 42460-2023信息安全技術(shù)個(gè)人信息去標(biāo)識(shí)化效果評(píng)估指南
評(píng)論
0/150
提交評(píng)論