日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言求乘法,急!!!!c语言:求n次多项式的加法和乘法

發布時間:2024/7/23 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言求乘法,急!!!!c语言:求n次多项式的加法和乘法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

該樓層疑似違規已被系統折疊?隱藏此樓查看此樓

if(s->data.coef!=0.0)

{

s->data.expn=p->data.expn;

r->next=s;

r=s;

}

p=p->next;

q=q->next;

break;

case?1:

s->data.coef=q->data.coef;

s->data.expn=q->data.expn;

r->next=s;

r=s;

q=q->next;

break;

}//switch

}//while

/*if(p!=NULL)

r->next=p;

else

if(q!=NULL)

r->next=q;

else

r->next=NULL;*/?//這樣不行,q,p為局部變量,傳不到主函數中去

while(p)

{

s=(LNode*)malloc(sizeof(LNode));

s->data.coef=p->data.coef;

s->data.expn=p->data.expn;

r->next=s;

r=s;

p=p->next;

}

while(q)

{

s=(LNode*)malloc(sizeof(LNode));

s->data.coef=q->data.coef;

s->data.expn=q->data.expn;

r->next=s;

r=s;

q=q->next;

}

r->next=NULL;

for(q=newp->next;q->next!=NULL;q=q->next)//合并同類項

for(p=q;p!=NULL&&p->next!=NULL;p=p->next)

if(q->data.expn==p->next->data.expn)

{

q->data.coef=q->data.coef+p->next->data.coef;

r=p->next;

p->next=p->next->next;

free(r);

}

return?newp;

}

/*3、兩多項式相減*/

polynomail?subpolyn(polynomail?pa,polynomail?pb)

{

polynomail?s,newp,q,p,r,Q;

p=pa->next;q=pb->next;

newp=(LNode*)malloc(sizeof(LNode));

r=newp;

while(p&&q)

{

s=(LNode*)malloc(sizeof(LNode));

switch(cmp(p->data,q->data))

{

case?-1:

s->data.coef=p->data.coef;

s->data.expn=p->data.expn;

r->next=s;

r=s;

p=p->next;

break;

case?0:

s->data.coef=p->data.coef-q->data.coef;

if(s->data.coef!=0.0)

{

s->data.expn=p->data.expn;

r->next=s;

r=s;

}

p=p->next;

q=q->next;

break;

case?1:

s->data.coef=-q->data.coef;

s->data.expn=q->data.expn;

r->next=s;

r=s;

q=q->next;

break;

}//switch

}//while

while(p)

{

s=(LNode*)malloc(sizeof(LNode));

s->data.coef=p->data.coef;

s->data.expn=p->data.expn;

r->next=s;

r=s;

p=p->next;

}

while(q)

{

s=(LNode*)malloc(sizeof(LNode));

s->data.coef=-q->data.coef;

s->data.expn=q->data.expn;

r->next=s;

r=s;

q=q->next;

}

r->next=NULL;

if(newp->next!=NULL&&newp->next->next!=NULL)//合并同類項

{

for(q=newp->next;q!=NULL;q=q->next)

for(p=q->next,r=q;p!=NULL;)

if(q->data.expn==p->data.expn)

{

q->data.coef=q->data.coef+p->data.coef;

r->next=p->next;

Q=p;p=p->next;

free(Q);

}

else

{

r=r->next;

p=p->next;

}

}

return?newp;

}

/*4、銷毀已建立的兩個多項式*/

void?delpolyn(polynomail?pa,polynomail?pb)

{

polynomail?p,q;

p=pa;

while(p!=NULL)

{

q=p;

p=p->next;

free(q);

}

p=pb;

while(p!=NULL)

{

q=p;

p=p->next;

free(q);

}

printf("兩個多項式已經銷毀\n");

}

void?main()

{

polynomail?pa=NULL,pb=NULL;

polynomail?addp=NULL,subp=NULL,p,q;

int?n,m;

char?sign='y';

printf("1、創建兩個一元多項式\n");

printf("2、兩多項式相加得一新多項式\n");

printf("3、兩多項式相減得一新多項式\n");

printf("4、銷毀已建立的兩個多項式\n");

printf("5、退出\n");

printf("\n");

while(sign!='n')

{

printf("請選擇:");

scanf("%d",&n);

switch(n)

{

case?1:

if(pa!=NULL)

{

printf("已建立兩個一元多項式,請選擇其他操作!");

break;

}

printf("請輸入第一個多項式:\n");

printf("要輸入幾項:");

scanf("%d",&m);

while(m==0)

{

printf("m不能為0,請重新輸入m:");

scanf("%d",&m);

}

pa=creatpolyn(pa,m);

printpolyn(pa);

printf("請輸入第二個多項式:\n");

printf("要輸入幾項:");

scanf("%d",&m);

pb=creatpolyn(pb,m);

printpolyn(pb);

break;

case?2:

if(pa==NULL)

{

printf("請先創建兩個一元多項式!\n");

break;

}

addp=addpolyn(pa,pb);

printpolyn(addp);

break;

case?3:

if(pa==NULL)

{

printf("請先創建兩個一元多項式!\n");

break;

}

subp=subpolyn(pa,pb);

printpolyn(subp);

break;

case?4:

if(pa==NULL)

{

printf("請先創建兩個一元多項式!\n");

break;

}

delpolyn(pa,pb);

pa=pb=NULL;

break;

case?5:

if(addp!=NULL)

{

p=addp;

while(p!=NULL)

{

q=p;

p=p->next;

free(q);

}

}

if(subp!=NULL)

{

p=subp;

while(p!=NULL)

{

q=p;

p=p->next;

free(q);

}

}

exit(-2);

}//switch

}//while

}

總結

以上是生活随笔為你收集整理的c语言求乘法,急!!!!c语言:求n次多项式的加法和乘法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。