怎樣實現一元多項式相加後輸出時按升序排列

2022-12-13 09:01:05 字數 4138 閱讀 1582

1樓:匿名使用者

一polycreate這個函式的引數有問題,在**中你都沒用到,所以不需要給他傳引數,改為:

polynode* polycreate()

二scanf("%d%d",&c,&e);

if(eexp)

你這個地方是要給他排序嗎?問題是你第二個節點還沒有分配記憶體啊!怎麼排序?

而且如果你輸入的情況是1 1,1 3,1 4然後有輸入一個1 2,意思就是說第一個是1次方,第二個是3次方,第三個是4次方,第四個是2次方,這個你該怎麼排序?所以應該是,你每輸入一個節點就遍歷一遍連結串列,插入到該插的地方。while迴圈部分改為:

scanf("%d%d",&c,&e);/*鍵入多項式的係數和指數項*/

while(c!=0) /*若c=0,則代表多項式的輸入結束*/

s->next = temp;//插入

rear->next = s;

scanf("%d%d",&c,&e);

}我修改之後的程式如下:

#include

#include

typedef struct polynode

polynode;

polynode* polycreate(/*polynode *head*/)

s->next = temp;//插入

rear->next = s;

scanf("%d%d",&c,&e);

}return(h);

}void polylist_add(polynode *head1,polynode *head2)

else if(p->exp>q->exp)

else

else

}if(p!=null) r->next=p;

else

r->next=q;

}}void printf_list(polynode *head)

}int main()

已經執行成功,希望能夠幫到你!以上

2樓:閆元白

用連結串列表示多項式,各結點按各項係數升序(或降序)排列,然後將加數的連結串列各結點依次插入被加數的連結串列,插入時保持升序(或降序)

一元多項式的計算 能夠按照指數降序排列建立並輸出多項式 能夠完成兩個多項式的相加及相減

3樓:諾諾百科

#includetypedef struct polynodenode *create() //用尾插法建立一元多項式的連結串列printf("exp: ");

scanf("%d",&e);

while(c!=0) //輸入係數為0時,多項式的輸入結束s->coef=c;

printf("coef:");

scanf("%d",&c);

scanf("%d",&e);

void print(node *p) //輸出函式,列印出一元多項式

temp=q->next;free(q);q=temp;

if(p!=null) //將多項式a中剩餘的結點加入到和多項式中pre->next=p;

else

void multipoly(node *ha,node *hb){ node *p,*q,*n,*m;

p=ha->next;

m->exp=p->exp+q->exp;

p=p->next;

polyadd(n,m);

printf("多項式的積是:\n");

printf("請輸入多項式hb的係數與指數:\n");

hb=create();

printf("多項式的和是:\n");

multipoly(ha,hb);

簡介在數學中,多項式(polynomial)是指由變數、係數以及它們之間的加、減、乘、冪運算(非負整數次方)得到的表示式。

對於比較廣義的定義,1個或0個單項式的和也算多項式。按這個定義,多項式就是整式。實際上,還沒有一個只對狹義多項式起作用,對單項式不起作用的定理。

0作為多項式時,次數定義為負無窮大(或0)。單項式和多項式統稱為整式。

4樓:咫尺天涯

#include

#include

#include

typedef struct polynode

node;

node *create() //用尾插法建立一元多項式的連結串列

r->next=null;

return(h);

} void print(node *p) //輸出函式,列印出一元多項式 }

void polyadd(node *ha, node *hb)//一元多項式相加函式,用於將兩個多項式相加,然後將和多項式存放在多項式ha中,並將多項式hb刪除

else if(p->exp==q->exp)

else //如果係數和為零,則刪除結點p與q,並將指標指向下一個結點 }

else }

if(p!=null) //將多項式a中剩餘的結點加入到和多項式中

pre->next=p;

else

pre->next=q;

} void multipoly(node *ha,node *hb)

p=p->next;

polyadd(n,m);

} printf("多項式的積是:\n");

print(n);

} void main()

c++程式設計:一元多項式計算 任務:能夠按照指數降序排列建立並輸出多項式; 能夠完成兩個多項式的相加、相減

5樓:咫尺天涯

#include

#include

#include

typedef struct polynode

node;

node *create() //用尾插法建立一元多項式的連結串列

r->next=null;

return(h);

} void print(node *p) //輸出函式,列印出一元多項式 }

void polyadd(node *ha, node *hb)//一元多項式相加函式,用於將兩個多項式相加,然後將和多項式存放在多項式ha中,並將多項式hb刪除

else if(p->exp==q->exp)

else //如果係數和為零,則刪除結點p與q,並將指標指向下一個結點 }

else }

if(p!=null) //將多項式a中剩餘的結點加入到和多項式中

pre->next=p;

else

pre->next=q;

} void multipoly(node *ha,node *hb)

p=p->next;

polyadd(n,m);

} printf("多項式的積是:\n");

print(n);

} void main()

一元多項式的表示及相加

資料結構,一元多項式的求和問題。

6樓:匿名使用者

我寫的**寫成了兩個檔案了,

這個是 多項式加法list.h

#include

typedef struct node

listnode;

void creat(listnode *&l)p->next=null;

}void print(listnode *l)p=p->next;

}printf("\n");

if(l2->next!=null)

>next!=null&&pre->next->exp==p->exp)

else}}

還有個 多項式加法main

#include

#include

#include "list.h"

int main()

return 0;

}望採納謝謝

怎樣有matlab解多項式方程用matlab如何解方程

用matlab解方程的三個例項 1 對於多項式p x x3 6x2 72x 27,求多項式p x 0的根,可用多項式求根函式roots p 其中p為多項式係數向量,即 p p 1.00 6.00 72.00 27.00 p是多項式的matlab描述方法,我們可用poly2str p,x 函式 來顯示...

初中數學單項式,初一數學什麼是單項式 多項式

多項式的次數是單項式的最高次數,這個最高是第二項,是6次 未知數最大次為幾次式 由數與字母的積組成的代數式叫做單項式,單獨的一個數或一個字母也叫做單項式 例 0可看做0乘a,1可以看做1乘指數為0的字母,b可以看做b乘1 注意 1.分母含有字母的式子不屬於單項式。因為單項式屬於整式,而分母含有未知數...

初一數學題(整式帶入 求多項式的值)

1 令3a b a 6a 2b 3 4轉換為2a 3 4 2a 7 a 5 8.5 即3a b 5 8.5 2 a 1.5 即2 3a b 1.5 2 636f707962616964757a686964616f31333264663130 27a 3b 10 令9a 3b a 6 聯立方程得36a...