




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、數(shù)據(jù)結(jié)構(gòu)課程設(shè)計實 驗 報 告專業(yè)班級: 學(xué) 號: 姓 名: 2011年1月1日題目:一元多項式的運算1、 題目描述一元多項式的運算在此題中實現(xiàn)加、減法的運算,而多項式的減法可以通過加法來實現(xiàn)(只需在減法運算時系數(shù)前加負號)。在數(shù)學(xué)上,一個一元n次多項式Pn(X)可按降序?qū)懗桑?Pn(X)= PnXn+ P(n-1)X(n-1)+.+ P1X+P0它由n+1個系數(shù)惟一確定,因此,在計算機里它可以用一個線性表P來表示: P=(Pn,P(n-1),.,P1,P0)每一項的指數(shù)i隱含在其系數(shù)Pi的序號里。假設(shè)Qm(X)是一元m次多項式,同樣可以用一個線性表Q來表示:Q=(qm,q(m-1),.,q1
2、,q0)不是一般性,假設(shè)嗎嗎m<n,則兩個多想是相加的結(jié)果:Rn(X)= Pn(X)+ Qm(X) 很顯然,可以對P,Q和R采用順序存儲結(jié)構(gòu),使得多項式相加的算法定義和實現(xiàn)簡單化。然而,在通常的應(yīng)用中,多項式的次數(shù)可能變化很大而且很高,使得順序存儲結(jié)構(gòu)的最大長度很難確定。特別是在處理項數(shù)少且次數(shù)特別高的情況下,對內(nèi)存空間的浪費是相當(dāng)大的。因此,一般情況下,都采用鏈?zhǔn)酱鎯Y(jié)構(gòu)來處理多項式的運算,使得兩個線性鏈表分別表示一元多項式Pn(X)和Qm(X),每個結(jié)點表示多項式中的一項。通過分析多項式的特征,不難看出多項式是由單項式構(gòu)成的,而每個單項式都具有系數(shù)和指數(shù),當(dāng)系數(shù)為0時,該項就是去了意
3、義,在計算機內(nèi)要表示一個多項式,至少具有以下數(shù)據(jù)信息:系數(shù)信息、指數(shù)信息和指向下一個單項式的指針。通過指針,我們就可以把多個單項式連接起來,形成一個多項式。2、任務(wù)要求系數(shù)定義的是float型,范圍是3.4*10-383.4*1038;指數(shù)定義的是int型,范圍是-2147483648+2147483647;輸入多項式系數(shù)及指數(shù),系統(tǒng)會自動將系數(shù)轉(zhuǎn)化為浮點型。功能:(1)提示輸入數(shù)據(jù)。要求先輸入多項式的項數(shù)。(2)創(chuàng)建多項式。接收輸入的數(shù)據(jù),并保存到鏈表中。(3)顯示已經(jīng)創(chuàng)建好的多項式。(4)實現(xiàn)加、減法運算。(5).退出程序3、概要設(shè)計(1)鏈表結(jié)點的類型定義(2)建立有序鏈表void Cr
4、eatPolyn(LinkList &L,int n)(3)多項式鏈表的相加void AddPolyn(LinkList La,LinkList Lb,LinkList &Lc)(4)多項式鏈表的輸出void printList(LinkList L)4、詳細設(shè)計(1)鏈表結(jié)點的類型定義 typedef struct /在struct前使用關(guān)鍵字typedef,表示是聲明新類型float coef; /系數(shù)int expn; /指數(shù)DataType; /DataType是新類型typedef struct node /單鏈表的存儲DataType data; /數(shù)據(jù)域struc
5、t node *next; /指向下一個結(jié)點ListNode,*LinkList; /ListNode是結(jié)點的新類型,LinkList是指向ListNode類型的結(jié)點的指針類型(2)建立有序鏈表 要實現(xiàn)多項式的加法運算,首先要建立多項式的存儲結(jié)構(gòu),每一個一元多項式的存儲結(jié)構(gòu)就是一個有序單鏈表。有序鏈表的基本操作定義與線性鏈表有兩處不同,一個是結(jié)點的查找定位操作LocateNode有所不同,二是結(jié)點的插入操作InsertNode不同,這兩個操作算法分別如下:/結(jié)點的查找定位int LocateNode(LinkList L,DataType e,int &q)ListNode *p=L-
6、>next;q=0;/記錄結(jié)點位置序號while(p&&e.expn<p->data.expn)p=p->next;q+;if(p=NULL|e.expn!=p->data.expn)return 0;else return 1;void InsertNode(LinkList &L,DataType e,int q)函數(shù)功能:將新的節(jié)點p插入到現(xiàn)有鏈表的后面,并確保多項式的指數(shù)expn是升序。將s節(jié)點插入到e所指向的鏈表。在該函數(shù)的操作中,要注意指針是如何移動的。/有序鏈表結(jié)點的插入void InsertNode(LinkList &am
7、p;L,DataType e,int q)ListNode *s,*p;int i=0;p=L;while(p->next && i<q)p=p->next;i+;/查找插入位置s=(ListNode*)malloc(sizeof(ListNode);s->data.coef=e.coef;s->data.expn=e.expn;s->next=p->next;p->next=s;有了上述兩個“結(jié)點的查找定位算法”和“有序鏈表結(jié)點的插入算法”,int n保存的多項式的項數(shù),使用for語句,控制輸入多項式的每一項。當(dāng)創(chuàng)建的鏈表長度為
8、n時,將不再提示用戶繼續(xù)輸入多項式的系數(shù)和指數(shù)。建立一個一元多項式的單鏈表的具體算法如下:/多項式鏈表的建立void CreatPolyn(LinkList &L,int n)LinkList pa; /定義一個頭指針為pa鏈表int i,q; /i用來計輸入的項數(shù),q指結(jié)點的位置序號DataType e; /插入的值epa=(ListNode*)malloc(sizeof(ListNode); /生成鏈表頭結(jié)點pa->next=NULL;for(i=1;i<=n;i+)scanf("%f,%d",&e.coef,&e.expn);if(
9、!LocateNode(pa,e,q) /當(dāng)前鏈表中不存在該指數(shù)項InsertNode(pa,e,q); /調(diào)用InsertNode函數(shù)插入結(jié)點L=pa;(3)多項式鏈表的相加 根據(jù)一元多項式相加的運算規(guī)則:對于一元多項式中所有指數(shù)相同的項,對應(yīng)系數(shù)相加,若其和不為零,則構(gòu)成“和多項式”中的一項;對于兩個一元多項式中所有指數(shù)不相同的項,則分別復(fù)制到“和多項式”中相應(yīng)的位置。根據(jù)以上運算規(guī)則,其實現(xiàn)算法思路如下:假設(shè)pc為指向“和多項式鏈表”當(dāng)前尾結(jié)點的指針,指針pa和pb分別指向兩個多項式中當(dāng)前進行比較的某個結(jié)點,則比較兩個結(jié)點中的指數(shù)項值,有下面三種情況:1.若指針pa所指結(jié)點的指數(shù)值大于指
10、針pb所指結(jié)點的指數(shù)值,則取pa指針?biāo)赶虻慕Y(jié)點插入到pc指針?biāo)附Y(jié)點之后,分別修改指針pa和pc,使之指向鏈表的下一個結(jié)點;2.若指針pa所指結(jié)點的指數(shù)值小于指針pb所指結(jié)點的指數(shù)值,則取pb指針?biāo)赶虻慕Y(jié)點插入到pc指針?biāo)附Y(jié)點之后,分別修改指針pb和pc,使之指向鏈表的下一個結(jié)點;3.若指針pa所指結(jié)點的指數(shù)值等于指針pb所指結(jié)點的指數(shù)值,則將兩結(jié)點中的系數(shù)相加,如果其和數(shù)不為零,則修改pa指針?biāo)附Y(jié)點中的系數(shù)值,將其結(jié)點插入到pc指針?biāo)附Y(jié)點之后,分別修改pa、pb和pc,使之指向各自鏈表的下一個結(jié)點,同時刪除并釋放指針pb原先指向各自鏈表的下一個結(jié)點;如果和數(shù)為零,保存pa和pb所指
11、向的結(jié)點,修改pa和pb指針使之指向各自鏈表的下一個結(jié)點,然后釋放保存的兩個結(jié)點。再比較指針pa和pb指向節(jié)點中的指數(shù)項值,分3種情況進行處理.這樣的操作一直繼續(xù)到pa或pb等于NULL為止。最后將未結(jié)束的鏈表后面剩余的節(jié)點連接到pc指針?biāo)赶蚪Y(jié)點之后。上述多項式的相加過程和兩個有序鏈表合并的過程類似,不同之處僅在于多項式的比較多了相等比較后的操作。因此,多項式相加的過程完全可以利用線性鏈表的基本操作來實現(xiàn)。具體實現(xiàn)多項式相加的算法如下:/多項式鏈表的相加void AddPolyn(LinkList La,LinkList Lb,LinkList &Lc) /兩個有序鏈表La和Lb表示
12、的多項式相加ListNode *pa,*pb,*pc,*s;float sum;pa=La->next;pb=Lb->next; /pa和pb分別指向兩個鏈表的開始結(jié)點Lc=pc=La; /用La的頭結(jié)點作為Lc的頭結(jié)點while (pa&&pb)if(pa->data.expn > pb->data.expn)pc->next=pa;pc=pa;pa=pa->next;else if(pa->data.expn < pb->data.expn)pc->next=pb;pc=pb;pb=pb->next;
13、else sum=pa->data.coef+pb->data.coef;if(fabs(sum)>0) /系數(shù)和不為零pa->data.coef=sum;pc->next=pa;pc=pa;pa=pa->next;s=pb;pb=pb->next;free(s);elses=pa;pa=pa->next;free(s);s=pb;pb=pb->next;free(s);pc->next=pa?pa:pb;/插入鏈表剩余部分 free(Lb);/釋放Lb的頭結(jié)點(4) 多項式鏈表的輸出void printList(LinkList L
14、)函數(shù)功能:顯示多項式鏈表。在輸出項中使用了條件表達式,當(dāng)系數(shù)項為正數(shù)時,在系數(shù)前輸出一個“+”號,否則輸出一個空格,而負數(shù)的負號還照常輸出,使得輸出結(jié)果盡量與原多項式的表示形式類似。因此,輸出多項式鏈表的算法實現(xiàn)如下:/多項式鏈表的輸出void printList(LinkList L)ListNode *p;p=L->next;while(p)printf("%c %fx %d",(p->data.coef>0? '+':' '),p->data.coef,p->data.expn);p=p->next
15、;printf("n");源程序代碼:#include <stdio.h>#include <stdlib.h>#include <math.h>/多項式鏈表結(jié)點類型定義typedef struct /在struct前使用關(guān)鍵字typedef,表示是聲明新類型float coef; /系數(shù)int expn; /指數(shù)DataType; /DataType是新類型typedef struct node /單鏈表的存儲DataType data; /數(shù)據(jù)域struct node *next; /指向下一個結(jié)點ListNode,*LinkList
16、; /ListNode是結(jié)點的新類型,LinkList是指向ListNode類型的結(jié)點的指針類型/結(jié)點的查找定位int LocateNode(LinkList L,DataType e,int &q)ListNode *p=L->next;q=0;/記錄結(jié)點位置序號while(p&&e.expn<p->data.expn)p=p->next;q+;if(p=NULL|e.expn!=p->data.expn)return 0;else return 1;/有序鏈表結(jié)點的插入void InsertNode(LinkList &L,Da
17、taType e,int q)ListNode *s,*p;int i=0;p=L;while(p->next && i<q)p=p->next;i+;s=(ListNode*)malloc(sizeof(ListNode);s->data.coef=e.coef;s->data.expn=e.expn;s->next=p->next;p->next=s;/多項式鏈表的建立void CreatPolyn(LinkList &L,int n)LinkList pa; /定義一個頭指針為pa鏈表int i,q; /i用來計輸入
18、的項數(shù),q指結(jié)點的位置序號DataType e; /插入的值epa=(ListNode*)malloc(sizeof(ListNode); /生成鏈表頭結(jié)點pa->next=NULL;for(i=1;i<=n;i+)scanf("%f,%d",&e.coef,&e.expn);if(!LocateNode(pa,e,q) /當(dāng)前鏈表中不存在該指數(shù)項InsertNode(pa,e,q); /調(diào)用InsertNode函數(shù)插入結(jié)點L=pa;/多項式鏈表的輸出void printList(LinkList L)ListNode *p;p=L->ne
19、xt;while(p)printf("%c %fx %d",(p->data.coef>0? '+':' '),p->data.coef,p->data.expn);p=p->next;printf("n");/多項式鏈表的相加void AddPolyn(LinkList La,LinkList Lb,LinkList &Lc) /兩個有序鏈表La和Lb表示的多項式相加ListNode *pa,*pb,*pc,*s;float sum;pa=La->next;pb=Lb->
20、next;/pa和pb分別指向兩個鏈表的開始結(jié)點Lc=pc=La;/用La的頭結(jié)點作為Lc的頭結(jié)點while (pa&&pb)if(pa->data.expn > pb->data.expn)pc->next=pa;pc=pa;pa=pa->next;else if(pa->data.expn < pb->data.expn)pc->next=pb;pc=pb;pb=pb->next; else sum=pa->data.coef+pb->data.coef;if(fabs(sum)>0)/系數(shù)和不為
21、零pa->data.coef=sum;pc->next=pa;pc=pa;pa=pa->next;s=pb;pb=pb->next;free(s);elses=pa;pa=pa->next;free(s);s=pb;pb=pb->next;free(s);pc->next=pa?pa:pb;/插入鏈表剩余部分 free(Lb);/釋放Lb的頭結(jié)點/主控函數(shù)void main()LinkList La,Lb,Lc;int n;printf("輸入第一個多項式的項數(shù):");scanf("%d",&n);pri
22、ntf("輸入第一個多項式的每一項的系數(shù),指數(shù):n");CreatPolyn(La,n);printf("第一個多項式為:");printList(La);printf("輸入第二個多項式的項數(shù):");scanf("%d",&n);printf("輸入第二個多項式的每一項的系數(shù),指數(shù):");CreatPolyn(Lb,n);printf("第二個多項式為:"); printList(Lb);AddPolyn(La,Lb,Lc);printf("n相加后的和多
23、項式為:");printList(Lc);5、調(diào)試分析此一元多項式的運算程序,只能實現(xiàn)一元多項式的加、減法,不能實現(xiàn)一元多項式的乘法,而且若想計數(shù)多個多項式的和或者差的話,必須退出界面重新開始計算。在補充程序里面,解決了程序沒有的選擇功能表的功能,及其多項式的乘法運算。6. 測試結(jié)果輸入多項式的項數(shù),并且顯示多項式及其兩個多項式的和:補充程序:多項式運算程序具有以下基本功能:1界面輸出,提示如何輸入數(shù)據(jù)。要求先輸入多項式的項數(shù)。2創(chuàng)建多項式。接收輸入的數(shù)據(jù),并保存到鏈表中。3顯示程序的功能表,允許使用者選擇運算類型。4顯示已經(jīng)創(chuàng)建好的多項式。5實現(xiàn)加法運算。6實現(xiàn)減法運算。7實現(xiàn)乘法
24、運算。8清除內(nèi)存內(nèi)容,銷毀創(chuàng)建的鏈表,退出程序。該程序?qū)崿F(xiàn)了多項式的創(chuàng)建、多項式的加法、減法、乘法運算以及多項式的清除。源程序代碼:#include<stdio.h>#include<malloc.h>/*以下函數(shù)實現(xiàn)鏈表的定義*/*該函數(shù)的功能:在計算機內(nèi)要表示一個多項式,至少以下數(shù)據(jù)信息-系數(shù)信息、指數(shù)信息和指向下一個單項式的指針。通過指針,我們就可以把多個單項式連接起來,形式一個多項式.*/typedef struct Polynomialfloat coef; /系數(shù)int expn; /指數(shù)struct Polynomial *next; /指向下一個結(jié)點*P
25、olyn,Polynomial; /Polyn為結(jié)點指針類型/*以下函數(shù)用來實現(xiàn)鏈表的順序排列和合并相同的項 */*該函數(shù)的功能:實現(xiàn)鏈表的順序排列和合并相同的項。將新的節(jié)點p插入到現(xiàn)有鏈表的后面,并確保多項式的指數(shù)expn是升序。將p節(jié)點插入到head所指向的鏈表。在該函數(shù)的操作中,要注意指針是如何移動的。*/void Insert(Polyn p,Polyn h) if(p->coef=0)free(p); /系數(shù)為0的話釋放結(jié)點else /如果系數(shù)不為0 Polyn q1,q2;q1=h;q2=h->next;while(q2&&p->expn<q
26、2->expn) /查找插入位置 q1=q2;q2=q2->next;if(q2&&p->expn=q2->expn) /將指數(shù)相同相合并 q2->coef+=p->coef;free(p);if(!q2->coef) /系數(shù)為0的話釋放結(jié)點 q1->next=q2->next;free(q2);else /指數(shù)為新時將結(jié)點插入 p->next=q2;q1->next=p;/Insert/*以下函數(shù)實現(xiàn)建立一個多項式*/*該函數(shù)功能:創(chuàng)建新的多項式鏈表。int m保存的多項式的項數(shù),使用for語句,控制輸入多項式
27、的每一項。當(dāng)創(chuàng)建的鏈表長度為m時,將不再提示用戶繼續(xù)輸入多項式的系數(shù)和指數(shù)。*/Polyn CreatePolyn(Polyn head,int m)/建立一個頭指針為head、項數(shù)為m的一元多項式,int m是保存的多項式的項數(shù) /在主程序初始時,先輸入的多項式中的項數(shù)m、n 在這里為m。主程序中的pa、pb在此為headint i;/定義int i計數(shù),當(dāng)i<m時,for語句反復(fù)提示用戶輸入該多項式的每一項的指數(shù)和系數(shù),并保存。當(dāng)i=m時,輸入完畢,該鏈表也創(chuàng)建完畢。Polyn p; /定義一個p鏈表p=head=(Polyn)malloc(sizeof(struct Polynom
28、ial);head->next=NULL;for(i=0;i<m;i+)/使用for語句,控制輸入多項式的每一項。當(dāng)創(chuàng)建的鏈表長度為m時,將不再提示用戶繼續(xù)輸入多項式的系數(shù)和指數(shù)。p=(Polyn)malloc(sizeof(struct Polynomial);/建立新結(jié)點以接收數(shù)據(jù),用到分配空間的函數(shù)malloc()為新建鏈表分配空間printf("請輸入第%d項的系數(shù)與指數(shù):",i+1);scanf("%f %d",&p->coef,&p->expn);Insert(p,head); /調(diào)用Insert函數(shù)插
29、入結(jié)點return head;/CreatePolyn/*以下函數(shù)實現(xiàn)多項式的銷毀*/*該函數(shù)的功能:銷毀掉創(chuàng)建的兩個鏈表,釋放內(nèi)存。以輔助退出程序*/void DestroyPolyn(Polyn p)/銷毀多項式pPolyn q1,q2;q1=p->next;q2=q1->next;while(q1->next)free(q1);q1=q2; /指針后移q2=q2->next;/*以下函數(shù)實現(xiàn)顯示輸出多項式* */*該函數(shù)的功能:顯示多項式鏈表。在該函數(shù)中較復(fù)雜的是如何控制鏈表的輸出,尤其是第一項的輸出,同時還有符號的控制。在輸出第一項時要判斷是不是常數(shù)項,若是,則
30、不要輸出字符x。*/void PrintPolyn(Polyn P) Polyn q=P->next; int flag=1;/項數(shù)計數(shù)器,flag=1表示為第一項if(!q) /若多項式為空,輸出0 putchar('0'); printf("n");return; while (q)if(q->coef>0&&flag!=1)/系數(shù)大于0且不是第一項putchar('+'); if(q->coef!=1&&q->coef!=-1)/系數(shù)非1或-1的普通情況printf(&quo
31、t;%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->expn);if(q->coef=-1)if(!q->expn) printf(&
32、quot;-1"); else if(q->expn=1) printf("-X"); elseprintf("-X%d",q->expn);q=q->next; flag+;/whileprintf("n");/PrintPolyn/*在下面的輔助乘法和加法運算*/*該函數(shù)功能:判斷兩個多項式在同一指數(shù)下是否有其中一個為系數(shù)為0。用來輔助加法和乘法運算。*/int compare(Polyn a,Polyn b)/a、b兩個多項式if(a&&b)/a、b多項式均非空if(!b|a->
33、expn>b->expn) /a的指數(shù)大于b的指數(shù)return 1;else if(!a|a->expn<b->expn) /a的指數(shù)小于b的指數(shù)return -1;else /a的指數(shù)等于b的指數(shù)return 0;else if(!a&&b) return -1;/a多項式已空,但b多項式非空else return 1;/b多項式已空,但a多項式非空/compare/*以下函數(shù)實現(xiàn)加法*/*該函數(shù)功能:實現(xiàn)兩個多項式pa、pb相加,并將計算結(jié)果存儲于新建立的pc中,它的原理是將指數(shù)相同的單項式相加,系數(shù)相加后為0,則pa、pb的指針都后移。在加法
34、計算中要求pa與pb的冪次序都是升序,否則可能得到錯誤的結(jié)果。*/Polyn AddPolyn(Polyn pa,Polyn pb)/求解并建立多項式a+b,返回其頭指針Polyn qa=pa->next;Polyn qb=pb->next;Polyn headc,hc,qc;hc=(Polyn)malloc(sizeof(struct Polynomial);/建立頭結(jié)點hc->next=NULL;headc=hc;while(qa|qb)qc=(Polyn)malloc(sizeof(struct Polynomial);/malloc()函數(shù)為其分配內(nèi)存空間switch
35、(compare(qa,qb)case 1: /a的指數(shù)大于b的指數(shù),a、b多項式不會實現(xiàn)相加運算qc->coef=qa->coef;qc->expn=qa->expn;qa=qa->next;break;case 0: /a的指數(shù)等于b的指數(shù),系數(shù)和為a、b多項式的系數(shù)相加之和,指數(shù)即為其兩者相同的指數(shù) qc->coef=qa->coef+qb->coef;qc->expn=qa->expn;qa=qa->next;qb=qb->next;break; case -1: /a的指數(shù)小于b的指數(shù),a、b多項式不會實現(xiàn)相加運
36、算qc->coef=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時,釋放該結(jié)點/whilereturn headc;/AddPolyn/*以下函數(shù)實現(xiàn)減法*/*該函數(shù)功能:實現(xiàn)兩個多項式pa、pb相減,其原理根加法類似,將指數(shù)相同的系數(shù)相減。與加法不同的是在送在減法中,創(chuàng)建了新的鏈表來存放結(jié)果,并返回該鏈表的頭指針。*/Polyn Su
37、btractPolyn(Polyn pa,Polyn pb)/求解并建立多項式a+b,返回其頭指針Polyn h=pb;Polyn p=pb->next;Polyn pd;while(p) /將pb的系數(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;/SubtractPolyn/*以下函數(shù)實現(xiàn)乘法*/*該函數(shù)功能:實現(xiàn)兩個多項式相乘,A(X) * B(x) 。計算時運用單項式與多項式相乘的法則,然后再次運用單
38、項式與多項式相乘的法則。*/Polyn MultiplyPolyn(Polyn pa,Polyn pb)/求解并建立多項式a*b,返回其頭指針(該函數(shù)實現(xiàn)乘法)Polyn hf,pf;Polyn qa=pa->next;Polyn qb=pb->next;hf=(Polyn)malloc(sizeof(struct Polynomial);/建立頭結(jié)點hf->next=NULL;for(;qa;qa=qa->next)for(qb=pb->next;qb;qb=qb->next) pf=(Polyn)malloc(sizeof(struct Polynomi
39、al);pf->coef=qa->coef*qb->coef;pf->expn=qa->expn+qb->expn;Insert(pf,hf);/調(diào)用Insert函數(shù)以合并指數(shù)相同的項return hf;/MultiplyPolyn/*主函數(shù)實現(xiàn)顯示與功能選擇*/*該函數(shù)功能:main函數(shù)用來實現(xiàn)提示使用者輸入、顯示功能列表、調(diào)用其他運算函數(shù)實現(xiàn)運算功能。在main()函數(shù)中,定義m、n用來保存兩個多項式的項數(shù),pa、pb、pc、pd、pf定義程序所需鏈表的頭指針。在程序開始要求輸入兩個多項式的項數(shù),隨后根據(jù)項數(shù)創(chuàng)建兩個鏈表以保存多項式,再顯示出功能列表后通過if語句來實現(xiàn)功能的選擇,從而對整個程序流程進行控制。*/int main()int m,n,flag=0;/m、n為分別為a、b兩個多項式的項數(shù)Polyn pa=0,pb=0,pc,pd,pf;/定義各式的頭指針,pa與pb在使用前付初值NULL/pc頭指針?biāo)诘亩囗検接迷诩臃ㄖ凶鳛榻Y(jié)果,pd用在加法中,pf乘法中printf("*歡迎使用一元多項式運算程序*n");printf(&quo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 有機肥料在提高農(nóng)業(yè)土地利用率中的應(yīng)用考核試卷
- 風(fēng)險管理在企業(yè)集團戰(zhàn)略中的實踐應(yīng)用試題及答案
- 行政法學(xué)奇思妙想的試題及答案
- 行政法學(xué)文化背景與試題答案解讀
- 2025優(yōu)先受益類資金合伙合同范本
- 行政行為的合法性標(biāo)準(zhǔn)試題及答案
- 公租房搬遷協(xié)議書
- 酒店廉政協(xié)議書
- 集訓(xùn)學(xué)校協(xié)議書
- 乘客簽免責(zé)協(xié)議書
- 2023學(xué)年完整公開課版粘壓阻力
- 十大元帥羅榮桓
- 基于STM32的平衡車系統(tǒng)設(shè)計
- YY/T 0299-2022醫(yī)用超聲耦合劑
- MT 181-1988煤礦井下用塑料管安全性能檢驗規(guī)范
- GB/T 193-2003普通螺紋直徑與螺距系列
- 因納特工商管理綜合實訓(xùn)軟件V4.00
- 四議兩公開工作法課件
- 國有企業(yè)干部選拔任用條例
- 2022年保山數(shù)字產(chǎn)業(yè)發(fā)展有限責(zé)任公司招聘筆試題庫及答案解析
- 通用造價35kV~750kV線路(國網(wǎng))課件
評論
0/150
提交評論