91嫩草国产线免费观看_欧美日韩中文字幕在线观看_精品精品国产高清a毛片_六月婷婷网 - 一级一级特黄女人精品毛片

C語言 多項式加法

首頁 > 公積金2020-10-29 11:53:42

數據結構(c語言)的多項式加法程序,老是一個地方錯,求高手指點

電腦的提示: error C2664: x27InsAfterx27 : cannot convert parameter 1 from x27struct LinkListx27 to x27struct LinkList *x27 rn加法函數:rnvoid AddPolyn2(polynomial Pa,polynomial Pb,polynomial &Pc) /* 算法2.23 */rn { /* 多項式加法:Pc=Pa+Pb */rn Position qa,qb,qc,ha,hb,hc;rn term a,b;rnrn ha=GetHead(Pa);rn hb=GetHead(Pb); /* ha和hb分別指向Pa和Pb的頭結點 */rn hc =GetHead(Pc);//令hc成為pc的結點rn rn qa=NextPos(ha);//把pa的當前結點賦給qarn qb=NextPos(hb);//把Pb的當前結點賦給qbrn rn ha=GetHead(Pa);rn hb=GetHead(Pb); /* ha和hb分別指向Pa和Pb的頭結點 */rn rn rn rn while(qa&&qb)rn {rn a=GetCurElem(qa);//把pa的當前結點的指數值給arn b=GetCurElem(qb);//把pb的當前結點的指數值給brn }rn switch(cmp(a,b))//比較a,b大小rn {rn case -1: //qa中的結點的指數值小(即a小)rn InsAfter( Pc,hc,qa);rn rn qa=NextPos(ha); /* ha和qa均向后移一個結點 */rn rn break;rn case 0: qc->data.coef=qa->data.coef+qb->data.coef;rn /* 兩者的指數值相等,修改Pa當前結點的系數值 */rn if(qc->data.coef==0) /* 刪除多項式Pc中當前結點 */rn {rn DelFirst(Pa,ha,&qa);rn rn }rn elsern rn qb=NextPos(hb);rn qa=NextPos(ha);rn break;rn case 1: /* 多項式Pb中當前結點的指數值小 */rn InsAfter(Pc,hc,qb);rn //把qb結點插到pc頭結點后面rn qa=NextPos(hb); /* qb均向后移一個結點 */rn }rn rn rn if(!ListEmpty(Pb))rn {rn (Pb).tail=hb;rn Append(Pc,qb); /* 鏈接Pb中剩余結點 */rn }rn rn if(!ListEmpty(Pa))rn {rn (Pa).tail=ha;rn Append(&Pc,qa); /* 鏈接Pa中剩余結點 */rn }rn rn }rnrn void Opposite(polynomial Pa)rn { /* 一元多項式系數取反 */rn Position p;rn p=Pa.head;rn while(p->next)rn {rn p=p->next;rn p->data.coef*=-1;rn }rn }rnrn void SubtractPolyn(polynomial *Pa,polynomial *Pb)rn { /* 多項式減法:Pa=Pa-Pb,并銷毀一元多項式Pb */rn Opposite(*Pb);rn AddPolyn(Pa,Pb);rn }
不知道你的錯誤具體提示在哪行 反正錯誤類型是鏈表變量類型可能錯誤的被作為鏈表變量的指針來操作 系統無法運算 如果想要我幫你查看的話 請把所有代碼發出來 可以打包也可以發到博客 我幫您修改呢

C語言,描述多項式加法

題目內容:rn一個多項式可以表達為x的各次冪與系數乘積的和,比如:rn2x6+3x5+12x3+6x+20rn現在,你的程序要讀入兩個多項式,然后輸出這兩個多項式的和,也就是把對應的冪上的系數相加然后輸出。rn程序要處理的冪最大為100。rnrn輸入格式:rnrn總共要輸入兩個多項式,每個多項式的輸入格式如下:rn每行輸入兩個數字,第一個表示冪次,第二個表示該冪次的系數,所有的系數都是整數。第一行一定是最高冪,最后一行一定是0次冪。rn注意第一行和最后一行之間不一定按照冪次降低順序排列;如果某個冪次的系數為0,就不出現在輸入數據中了;0次冪的系數為0時還是會出現在輸入數據中。rnrn輸出格式:rnrn從最高冪開始依次降到0冪,如:rn2x6+3x5+12x3-6x+20rn注意其中的x是小寫字母x,而且所有的符號之間都沒有空格,如果某個冪的系數為0則不需要有那項。rnrn輸入樣例:rnrn6 2rn5 3rn3 12rn1 6rn0 20rn6 2rn5 3rn2 12rn1 6rn0 20rnrn輸出樣例:rnrn4x6+6x5+12x3+12x2+12x+40
1. #include"malloc.h"
2. typedef struct Polyn /*定義多項式每一項的類型*/
3. {
4. float cofe; /*每一項系數*/
5. int expn; /*每一項的指數*/
6. struct Polyn *next;
7. struct Polyn *prior;
8. }*Pol.yn,SNode;
9. void setPolyn(Polyn *t1,Polyn *t2,int n) /*建立多項式*/
10. {
11. float a;
12. int i,b;
13. *t1=(SNode *)malloc(sizeof(SNode)); /*創建頭節點*/
14. (*t1)->next=NULL;
15. for(i=0;i<n;i++)
16. {
17. *t2=(SNode *)malloc(sizeof(SNode));
18. scanf("%f,%d;",&a,&b);
19. (*t2)->cofe=a; (*t2)->expn=b;
20. (*t1)->next->prior=(*t2);
21. (*t2)->prior=(*t1);
22. (*t2)->next=(*t1)->next;
23. (*t1)->next=(*t2);
24. } /*創建每一項并連接成多項式*/
25. }
26. void print(Polyn *t) /*輸出多項式*/
27. {
28. Polyn p;
29. for(p=(*t)->next;p!=NULL;p=p->next)
30. printf("%f,%d;",p->cofe,p->expn);
31. printf("\n");
32. }
33. void arrange(Polyn *t) /*化簡多項式*/
34. {
35. float m1;
36. int m2;
37. Polyn p,q,r,s;
38. for(p=(*t)->next;p!=NULL;p=p->next)
39. for(q=p->next;q!=NULL;q=q->next)
40. if((p->expn)>(q->expn))
41. {
42. m1=p->cofe;p->cofe=q->cofe;q->cofe=m1;
43. m2=p->expn;p->expn=q->expn;q->expn=m2;
44. } /*冒泡法多項式指數排序*/
45. for(p=(*t)->next;p!=NULL;p=p->next)
46. if((p->expn)==(p->next->expn))
47. {
48. r=p->next;
49. p->cofe+=p->next->cofe;
50. p->next=p->next->next;
51. p=p->prior; /*指針指向上一結點(須重新處理現在處理 的結點)*/
52. free(r);
53. if((p->next->cofe)==0)
54. {
55. s=p->next;
56. p->next=p->next->next;
57. free(s);
58. }
59. } /*多項式相同指數項系數求和,化簡多項式*/
60. }
61. void linkPolyn(Polyn *t1,Polyn *t2) /*兩個多項式連接*/
62. {
63. Polyn p,q;
64. for(p=(*t2)->next;p!=NULL;p=p->next)
65. q=p;
66. p=(*t2)->next;
67. q->next=(*t1)->next;
68. (*t1)->next->prior=q;
69. (*t1)->next=p;
70. p->prior=(*t1);
71. }
72. main() /*主函數*/
73. {
74. Polyn La,la,Lb,lb;
75. int n,m; /*多項式項數*/
76. printf("enter La’s lenth:");
77. scanf("%d",&n);
78. setPolyn(&La,&la,n);
79. arrange(&La);
80. printf("after arrange La is:\n");
81. print(&La); /*輸入多項式La,化簡并輸出*/
82. printf("enter Lb’s lenth:");
83. scanf("%d",&m);
84. setPolyn(&Lb,&lb,m);
85. arrange(&Lb);
86. printf("after arrange Lb is:\n");
87. print(&Lb); /*輸入多項式Lb,化簡并輸出*/
88. linkPolyn(&La,&Lb); /*La與Lb連接,形成新的La*/
89. arrange(&La); /*化簡La*/
90. printf("after add Polyn is :\n");
91. print(&La); /*輸出結果*/
92. }

浙大翁愷c語言7.1多項式加法測試用例1是什么?求求了

651.2464.6

相關推薦:

民事訴訟偽造證據如何處理(民事訴訟中偽造證據的法律后果)

快遞損壞賠償包括哪些(快遞出現損壞如何賠償)

民事訴訟費用怎么算(訴訟費收費標準速算法)

醉駕標準及處罰規定(醉駕的標準是多少毫升)

中止訴訟時效的情形(刑法訴訟時效中斷的四種情形)