讀入合法字符_第1頁(yè)
讀入合法字符_第2頁(yè)
讀入合法字符_第3頁(yè)
讀入合法字符_第4頁(yè)
讀入合法字符_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、#include <stdio.h>#include <stdlib.h>#define OK 1;#define READ(I) while (I)=getchar()='n'); /讀入合法字符typedef int status;typedef struct PolyNode float coef; int expn; struct PolyNode *next;Poly,*P_Poly;status CreatPoly(P_Poly*,int); /創(chuàng)建多項(xiàng)式鏈表void OutP_Poly(P_Poly); /輸出多項(xiàng)式void AddPoly

2、(P_Poly*,P_Poly,P_Poly); /求和void DecPoly(P_Poly*,P_Poly,P_Poly); /求差void DelPoly(P_Poly*); /刪除并釋放多項(xiàng)式status main() P_Poly PolyHead26=0; char menu,name; for (;) printf ("1.建立多項(xiàng)式n"); printf ("2.輸出多項(xiàng)式n"); printf ("3.求兩個(gè)多項(xiàng)式之和(必須先創(chuàng)建),建立和式并輸出n"); printf ("4.求兩個(gè)多項(xiàng)式之差(必須先創(chuàng)建

3、),建立差式并輸出n"); printf ("5.刪除多項(xiàng)式n"); printf ("6.退出n"); printf ("請(qǐng)選擇指令:"); READ(menu) switch (menu) case '1': int n; printf ("請(qǐng)輸入要?jiǎng)?chuàng)建的多項(xiàng)式的名稱(單個(gè)小寫(xiě)字母表示):"); READ(name) if (NULL!=PolyHeadname-'a') printf ("此多項(xiàng)式已經(jīng)存在!n"); break; printf (&

4、quot;請(qǐng)輸入項(xiàng)數(shù):"); scanf ("%d",&n); if(CreatPoly(&PolyHeadname-'a',n) printf ("多項(xiàng)式%c創(chuàng)建完畢!n",name); break; case '2': printf ("請(qǐng)輸入要輸出的多項(xiàng)式的名稱:"); READ(name) if (NULL=PolyHeadname-'a') printf ("此多項(xiàng)式不存在!n"); break; OutP_Poly(PolyHea

5、dname-'a'); break; case '3': char name1,name2; printf ("請(qǐng)輸入加式一的名稱:"); READ(name1) if (NULL=PolyHeadname1-'a') printf ("此多項(xiàng)式不存在!請(qǐng)先創(chuàng)建n"); break; printf ("請(qǐng)輸入加式二的名稱:"); READ(name2) if (NULL=PolyHeadname2-'a') printf ("此多項(xiàng)式不存在!請(qǐng)先創(chuàng)建n"

6、;); break; printf ("請(qǐng)輸入要?jiǎng)?chuàng)建的和式的名稱:"); READ(name) if (NULL!=PolyHeadname-'a') printf ("此多項(xiàng)式已經(jīng)存在!n"); break; AddPoly(&PolyHeadname-'a',PolyHeadname1-'a',PolyHeadname2-'a'); OutP_Poly(PolyHeadname-'a'); break; case '4': char name1,n

7、ame2; printf ("請(qǐng)輸入被減式的名稱:"); READ(name1) if (NULL=PolyHeadname1-'a') printf ("此多項(xiàng)式不存在!請(qǐng)先創(chuàng)建n"); break; printf ("請(qǐng)輸入減式的名稱:"); READ(name2) if (NULL=PolyHeadname2-'a') printf ("此多項(xiàng)式不存在!請(qǐng)先創(chuàng)建n"); break; printf ("請(qǐng)輸入要?jiǎng)?chuàng)建的差式的名稱:"); READ(name)

8、if (NULL!=PolyHeadname-'a') printf ("此多項(xiàng)式已經(jīng)存在!n"); break; DecPoly(&PolyHeadname-'a',PolyHeadname1-'a',PolyHeadname2-'a'); OutP_Poly(PolyHeadname-'a'); break; case '5': printf ("請(qǐng)輸入要?jiǎng)h除的多項(xiàng)式名稱:"); READ(name) if (NULL=PolyHeadname-&

9、#39;a') printf ("此多項(xiàng)式不存在!n"); break; DelPoly(&PolyHeadname-'a'); printf ("多項(xiàng)式%c已刪除!n",name); break; case '6': return OK; status CreatPoly(P_Poly* P_PolyHead,int n) /為確保其他子函數(shù)正常運(yùn)行,入口參數(shù)要求不含同類項(xiàng)、指數(shù)遞減 int i=0; P_Poly p,tail; *P_PolyHead=(Poly*)malloc(sizeof(Poly

10、); (*P_PolyHead)->expn=n; tail=*P_PolyHead; printf ("請(qǐng)按照指數(shù)遞減序輸入最簡(jiǎn)形式的多項(xiàng)式n"); for (;i<n;i+) p=(Poly*)malloc(sizeof(Poly); printf ("請(qǐng)輸入第%d項(xiàng)的系數(shù)和指數(shù)(系數(shù),指數(shù)):",i+1); scanf ("%f,%d",&(p->coef),&(p->expn); tail->next=p; tail=p; tail->next=NULL; return OK

11、;void OutP_Poly(P_Poly PolyHead) int i=0; P_Poly p; printf ("%d ",PolyHead->expn); p=PolyHead->next; for (;i<PolyHead->expn;i+) printf ("%f,%d ",p->coef,p->expn); p=p->next; printf ("n");void AddPoly(P_Poly* P_PolyHead,P_Poly PolyHead1,P_Poly PolyHe

12、ad2) int i=0; P_Poly p1,p2,p,tail; p1=PolyHead1->next; p2=PolyHead2->next; *P_PolyHead=(P_Poly)malloc(sizeof(Poly); p=tail=*P_PolyHead; while(p1&&p2) int e1,e2; e1=p1->expn; e2=p2->expn; if (e1>e2) p=(P_Poly)malloc(sizeof(Poly); tail->next=p; tail=p; *p=*p1; p1=p1->next;

13、 i+; else if(e1=e2) float sum_c=p1->coef+p2->coef; if (sum_c!=0.0) p=(P_Poly)malloc(sizeof(Poly); tail->next=p; tail=p; p->coef=sum_c; p->expn=e1; i+; p1=p1->next; p2=p2->next; else if (e1<e2) p=(P_Poly)malloc(sizeof(Poly); tail->next=p; tail=p; *p=*p2; p2=p2->next; i+;

14、 while (p1) p=(Poly*)malloc(sizeof(Poly); *p=*p1; tail->next=p; tail=p; p1=p1->next; i+; while (p2) p=(Poly*)malloc(sizeof(Poly); *p=*p2; tail->next=p; tail=p; p2=p2->next; i+; (*P_PolyHead)->expn=i; tail->next=NULL;void DecPoly(P_Poly* P_PolyHead,P_Poly PolyHead1,P_Poly PolyHead2)

15、 int i=0; P_Poly p1,p2,p,tail; p1=PolyHead1->next; p2=PolyHead2->next; *P_PolyHead=(P_Poly)malloc(sizeof(Poly); p=tail=*P_PolyHead; while(p1&&p2) int e1,e2; e1=p1->expn; e2=p2->expn; if (e1>e2) p=(P_Poly)malloc(sizeof(Poly); tail->next=p; tail=p; *p=*p1; p1=p1->next; i+;

16、 else if(e1=e2) float dif_c=p1->coef-p2->coef; if (dif_c!=0.0) p=(P_Poly)malloc(sizeof(Poly); tail->next=p; tail=p; p->coef=dif_c; p->expn=e1; i+; p1=p1->next; p2=p2->next; else if (e1<e2) p=(P_Poly)malloc(sizeof(Poly); tail->next=p; tail=p; p->coef=-p2->coef; p->expn=p2->expn; p2=p2->next; i+; while (p1) p=(Poly*)malloc(sizeof(Poly); *p=*p1; tail->next=p; tail=p; p1=p1->next; i+; while (p2) p=(Poly*)m

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論