C語言寫多項式相加怎麼寫,兩個多項式相加運算(用c語言)

2021-05-02 22:07:02 字數 5618 閱讀 5896

1樓:匿名使用者

/*2007-3-22

一元多項式的加法

*/# include

# include

# include

typedef struct  polynodenode;

node *createpoly(void)h->next = null;

tail = h;

printf("請輸入每一項額係數和指數(中間以逗號隔開):/n");

printf("coef,exp: ");

scanf("%d,%d",&coef,&exp);

while (coef)

s->coef = coef;

s->exp = exp;

s->next = tail->next;

tail->next = s;

tail = s;

printf("ceof,exp: ");

scanf("%d,%d",&coef,&exp);

}return h;

}void polyadd(node *polya, node *polyb)

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

else}}

pre->next = p?p:q;

}int prin(node *h)

printf("/n");

return 1;

}int main(void)

2樓:彎彎的圓圓

分都不給。。。算了,以前寫了個就給你吧。/*此程式結構比較清晰,用單鏈表實現了多項式的加法。

具體原理可以參考清華大學嚴蔚敏資料《結構c語言版》第二章注意:此程式假設輸入的多項式已經排好序(從低到高)程式在vc6下編譯通過*/#includenbs.

c語言寫多項式相加怎麼寫?

3樓:匿名使用者

分都不給。。。算了,以前寫了個就給你吧。/*此程式結構比較清晰,用單鏈表實現了多項式的加法。

具體原理可以參考清華大學嚴蔚敏資料《結構c語言版》第二章注意:此程式假設輸入的多項式已經排好序(從低到高)程式在vc6下編譯通過*/#includenbsp;amp;lt;stdio.hamp;gt;#includenbsp;amp;lt;stdlib.

hamp;gt;#includenbsp;amp;lt;malloc.hamp;gt;#includenbsp;amp;lt;conio.hamp;gt;nbsp;/*getchnbsp;function*/typedefnbsp;structnbsp;nodenbsp;node;nodenbsp;*creat(intnbsp;n);voidnbsp;print(nodenbsp;*head);nodenbsp;*addpolyn(nodenbsp;*head1,nbsp;nodenbsp;*head2);nodenbsp;*delfirst(nodenbsp;*head,nbsp;nodenbsp;*q);voidnbsp;insertbefore(nodenbsp;*p1,nbsp;nodenbsp;*p2);intnbsp;nbsp;compare(intnbsp;a,nbsp;intnbsp;b);main()/*建立鍊錶*/nodenbsp;*creat(intnbsp;n)nbsp;previous-amp;gt;nextnbsp;=nbsp;null;nbsp;returnnbsp;head;}/*nbsp;一元多項式的加法nbsp;,總體考慮,可分qa的指數比qb小,或等於pb(如果係數相加等於0和不等於0),或大於pb裡面由insertbefore和delfirst兩個小模組組成一部分*/nodenbsp;nbsp;*addpolyn(nodenbsp;*head1,nbsp;nodenbsp;*head2){nbsp;nodenbsp;*ha,nbsp;*hb,nbsp;*qa,nbsp;*qb;nbsp;intnbsp;a,nbsp;b;nbsp;floatnbsp;sum;nbsp;hanbsp;=nbsp;head1;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;/*ha和hb指向頭結點*/nbsp;hbnbsp;=nbsp;head2;nbsp;qanbsp;=nbsp;ha-amp;gt;next;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;/*qa和qb指向頭結點的下乙個結點*/nbsp;qbnbsp;=nbsp;hb-amp;gt;next;nbsp;while(qanbsp;amp;amp;nbsp;qb)nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;/*qa和qb均非空*/nbsp;{nbsp;nbsp;anbsp;=nbsp;qa-amp;gt;expn;nbsp;nbsp;nbsp;bnbsp;=nbsp;qb-amp;gt;expn;nbsp;nbsp;switch(compare(a,nbsp;b))nbsp;{nbsp;nbsp;casenbsp;-1nbsp;:

兩個多項式相加運算(用c語言)

4樓:匿名使用者

#include

#include

#define null 0

typedef struct node

listnode,*list;

list createlist()

else

if(curr!=null && curr->expo == p->expo)

//插入結點,結點非首

if(prev != null)

//插入結點,結點為首

else

}printf("want to create a new node?y/n\n");

fflush(stdin);

scanf("%c",&ch);

}return head;

}list add(list head1,list head2)else if(ptr1->expo < ptr2->expo)else

if(head==null)

else

}while(ptr1 != null)

ptr1 = ptr1->next;

}while(ptr2 != null)

ptr2 = ptr2->next;

}return head;

}void display(list head)printf("\n");

}int main(int argc, char* argv)

5樓:淦海瑤

這個問題比較簡單了,用鍊錶的話,建立乙個結構體,三個元素,乙個float型,乙個int型,乙個結構體指標

建立鍊錶很簡單,固定格式

兩個鍊錶合併更簡單,吧第二個鍊錶的head直接賦值給第乙個鍊錶的最後哪個節點就可以

排序,用哪個int型做比較,交換節點的指標就可以做到輸出更簡單,固定格式,用指標,一路下去就可以,這個節點的哪個指標賦值給輸出的指標,一路下去就可以,當指標成為null結束

用資料結構(c語言版)實現一元多項式的表示及相加

6樓:匿名使用者

每個來項用乙個結點來表源示,每個結點包含bai兩個成員,分別表示該項的系du數和次數.如果zhi是用鍊錶來實現線dao性表,那麼結點還要包含next成員.此題最好用鍊錶來實現.

表示多項式,最好按照習慣,以次數的降序來排列各項.

相加時,就是將其中乙個鍊錶的各結點保持降序,依次插入另乙個鍊錶.如果遇到次數相同的,就合併.如果合併後係數為0,則刪除該結點.

用c語言編寫多項式相加的程式,下面圖中前兩個是要相加的多項式 第三個是相加後的結果,求好心人拜託了

7樓:匿名使用者

#include

#include

#include

#define eps 1e-6

typedef struct item  *polynomial,*pitem;

polynomial create()

p->next = null;

return head;

}void sort(polynomial head)

else q = q->next;

}p = p->next;}}

void show(polynomial head)

else if(p->coefficient == 1.0) printf("x^%d ",p->power);

else if(p->coefficient == -1.0) printf("-x^%d ",p->power);

else printf("%.2lfx^%d ",p->coefficient,p->power);

flag = 0;}}

else if(p->coefficient > 0.0 && fabs(p->coefficient) >= eps)

else if(p->coefficient == 1.0) printf("+ x^%d ",p->power);

else printf("+ %.2lfx^%d ",p->coefficient,p->power);

}else if(p->coefficient < 0.0 && fabs(p->coefficient) >= eps)

else if(p->coefficient == -1.0) printf("- x^%d ",p->power);

else printf("- %.2lfx^%d ",-p->coefficient,p->power);

}p = p->next;

}printf("\n");

}double power(double x,int n)

double value(polynomial head,double x)

polynomial copy(polynomial a)

t->next = null;

return head;

}polynomial additive(polynomial a, polynomial b)

break;

}q = q->next;

}if(q->next == null)

}sort(head);

return head;

}polynomial subtract(polynomial a, polynomial b)

break;

}q = q->next;

}if(q->next == null)

}sort(head);

return head;

}polynomial multiplication(polynomial a, polynomial b)

}t->next = null;

sort(head); // 排序

p = head;

while(p->next)

else q = q->next;

}p = p->next;

}return head;

}void freememory(polynomial head)

}int main()

用c編寫求兩個一元多項式相乘的演算法

給你編完了 在vc6下可以執行 include include using namespace std void cheng int a,int b,int w for int q w q 0 q cout 0 l cheng x,y,i 給個 你 2.3 應用 一元多項式 加法和乘法 2.3.1 ...

分子分母都是多項式怎麼拆分成兩個式子加減

分子看作是 x 3 x 2 則分式 1 x 1 x 2 1 x 1 x 3 繼續拆分即可。最後得到1 2 1 x 1 1 x 2 1 2 1 x 3 多項式中的每個單項式叫做多項式的項,這些單項式中的最高項次數,就是這個多項式的次數。其中多項式中不含字母的項叫做常數項。應用高斯引理可證,如果乙個整係...

七年級1班小明同學做一道題已知兩個多項式AB,A

a x2 2x 1,內2a b 2 x2 2x 1 b x2 5x 4,b x2 5x 4 2 x2 2x 1 容 x2 5x 4 2x2 4x 2,x2 x 2,a 2b x2 2x 1 2 x2 x 2 x2 4x 5.七年級 1 班冬冬同學做一道題 已知兩個多項式a,b。a x的平方 2x 1...