多項(xiàng)式加減法_第1頁
多項(xiàng)式加減法_第2頁
多項(xiàng)式加減法_第3頁
多項(xiàng)式加減法_第4頁
多項(xiàng)式加減法_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

一實(shí)驗(yàn)?zāi)康脑O(shè)計(jì)一個(gè)一元稀疏多項(xiàng)式簡單計(jì)算器。二、實(shí)驗(yàn)要求能創(chuàng)建和實(shí)現(xiàn)多項(xiàng)式的加減等各種功能。三、實(shí)驗(yàn)內(nèi)容一元稀疏多項(xiàng)式的基本功能:輸入并建立多項(xiàng)式;輸出多項(xiàng)式,輸出的形式為整數(shù)序列:n,c1,e1,c2,e2,……,cn,en,其中n是多項(xiàng)式的項(xiàng)數(shù),ci和ei分別是第i項(xiàng)的系數(shù)和指數(shù),序列按指數(shù)降序排列。多項(xiàng)式a和b相加,建立多項(xiàng)式a+b;多項(xiàng)式a和b相加,建立多項(xiàng)式a-b;四、程序源代碼#include<stdio.h>#include<malloc.h>#defineNULL0typedefstruct LNode{ floatcoef; intexpn; structLNode*next;}LNode,*Linklist;/////////////////////////////////////////////////LNode*creat(intcount)///////////////////////////創(chuàng)建鏈表,存放多項(xiàng)式{ Linklistp1,p2,head; intn=0; p1=p2=(Linklist)malloc(sizeof(LNode)); scanf("%f%d",&p1->coef,&p1->expn); head=NULL; while(n<count) { n=n+1; if(n==1)head=p1; elsep2->next=p1; p2=p1; p1=(Linklist)malloc(sizeof(LNode)); if(n!=count) { scanf("%f%d",&p1->coef,&p1->expn); } } p2->next=NULL; return(head);}Linklistsort(Linklisthead)////////////////////////對多項(xiàng)式按指數(shù)降序排序{ Linklistp0,p1,p2; inti=0; ints; floatf; p0=p1=head; while(p0) { i++; p0=p0->next; } for(intj=0;j<i-1;j++) { p1=head; while(p1->next) { p2=p1; p1=p1->next; if(p1->expn>p2->expn) { f=p1->coef; s=p1->expn; p1->coef=p2->coef; p1->expn=p2->expn; p2->coef=f; p2->expn=s; } } } returnhead;}/////////////////////////////////////////////////////合并系數(shù)相同的項(xiàng)Linklistmerge(Linklisthead){ Linklistp1,p2; p1=p2=head; while(p1) { p2=p1; p1=p1->next; while(p1&&p1->expn==p2->expn) { p2->coef+=p1->coef; p2->next=p1->next; free(p1); p1=p2->next; } } returnhead;}/////////////////////////////////////////////////////輸入多項(xiàng)式各項(xiàng)系數(shù)及指數(shù)voidprint(Linklisthead){ Linklistp,q; intcount=0; q=head; while(q) { q=q->next; count++; } printf("多項(xiàng)式中的各項(xiàng)系數(shù)指數(shù)依次為:\n"); printf("%d",count); p=head; if(head==NULL) printf("所得結(jié)果為0!\n"); if(head!=NULL) do {printf("\t%4.2fX%d",p->coef,p->expn); p=p->next; }while(p!=NULL); printf("\n");}///////////////////////////////////////////////////////出去系數(shù)為零的項(xiàng)Linklistdel_Zero(Linklisthead){ Linklistp1,p2; if(head==NULL) { printf("\nlistnull!\n");returnhead; } p1=p2=head; while(p1) { p2=p1; p1=p1->next; while(p1&&p1->coef==0) { if(p1==head)head=p1->next; else { p2->next=p1->next; p1=p2->next; } } } if(head->coef==0) head=head->next; return(head);}///////////////////////////////////////////////////////連接函數(shù)LinklistList_Link(LinklistL1,LinklistL2){ Linklistp; p=L1; while(p&&p->next) p=p->next; if(p==NULL) L1=L2; else p->next=L2; L2=NULL; returnL1;}voidmain(){ intcount1,count2; LinklistL1,L2,p; printf("輸入第一個(gè)多項(xiàng)式的項(xiàng)數(shù):\n"); scanf("%d",&count1); while(count1<0) { printf("輸入不合法,重新輸入:\n"); scanf("%d",&count1); } printf("依次輸入各項(xiàng)的系數(shù)和指數(shù):\n"); L1=creat(count1); sort(L1); //print(L1); printf("輸入第二個(gè)多項(xiàng)式的項(xiàng)數(shù):\n"); scanf("%d",&count2); while(count2<0) { printf("輸入不合法,重新輸入:\n"); scanf("%d",&count2); } printf("依次輸入各項(xiàng)的系數(shù)和指數(shù):\n"); L2=creat(count2); sort(L2); //print(L2); intchioce; printf("http://////////////////////////////////////////////\n"); printf("多項(xiàng)式相加輸入1,多項(xiàng)式做差輸入2:\n"); scanf("%d",&chioce); switch(chioce) { case1: L1=List_Link(L1,L2);break; case2: p=L2; while(p) { p->coef=-p->coef; p=p->next; } L1=List_Link(L1,L2);break; default:

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論