一元多項式相乘

2021-07-27 03:52:16 字數 2421 閱讀 7216

#include

#include

#include

#define max_num 40 //能夠處理的一元多項式的長度

#define max_coef 10 //係數或冪(帶符號的情況下)能處理的最大長度

typedef

struct inodeinode;

typedef

struct inode *poly;

typedef

struct assistarrayassistarray;

assistarray aarray[max_num];//輔助陣列

int stringtonum(char* s,int *i,int n,int flag);

int createassistarray(char* s,int n);

poly createpolynomial(int m);

poly multiplypolynomial(poly heada,poly headb);

void outputpolynomial(poly head);

void outputassistarray(int m);

void outputlist(poly head);

int getlength(char* s);

void destroypolynomial(poly head);

int stringtonum(char* s,int *i,int n,int flag) //字元數向整型數轉換的函式

}else

if(flag==1||*i==0)

}*i=j-1;

return atoi(num);

}int createassistarray(char* s,int n)

//處理一元多項式最後一項為常數,或期間某項為零次冪

}else

if(flag==1)

}else

if(k==0&&s[k]=='x') aarray[h].coef=1; //處理類似於x+1的係數情況

else

if(s[k]=='+'&&s[k+1]=='x') aarray[h].coef=1; //處理2x^2+x+1中x的係數情況

else

if(s[k]=='-'&&s[k+1]=='x') aarray[h].coef=-1; //處理2x^2-x+1中x的係數情況

if(s[k-1]=='x'&&s[k]=='^') flag=1; //開始處理冪

if(s[k]=='x'&&s[k+1]!='^') //處理2x+1中x的冪的情況

}return h;

}poly createpolynomial(int m)

newp=malloc(sizeof(inode));

newp->coef=aarray[i].coef;

newp->exp=aarray[i].exp;

newp->next=pre->next;

pre->next=newp;

}return head;

}poly multiplypolynomial(poly heada,poly headb)

if(tempn->next==null&&tempn->exp!=exp)

else

}tempb=tempb->next;

}tempa=tempa->next;

}return headn;

}void outputpolynomial(poly head)//係數為0,1,-1時都要特殊處理

else

if(temp->exp==1)

else

printf("%d",temp->coef);

if(begin==1) begin=0;

temp=temp->next;

}printf("\n");

} void outputassistarray(int m)

}void outputlist(poly head)

}int getlength(char* s)

return i;

}void destroypolynomial(poly head)

}int main()

輸入部分依舊很麻煩,要考慮各種特別情況,而且一般都是寫完了才想起來,所以常常出現問題。

測試用的輸出函式一定要簡潔而且正確,不然會浪費大量時間。

鍊錶迴圈時一定要多問自己這幾個問題:a)這輪迴圈是否需要初始化?b)這輪迴圈後,temp指標在**?c)是否需要刪除指標?d)會不會有指標為null情況,但你寫了ptr->num類似的錯誤**?

the end

一元多項式的相乘

1 include 2 include3 4using namespace std 56 7 define maxsize 20 89 typedef struct lnode 10lnode,linklist 1516 17int createlist l linklist l,int n 18 ...

一元多項式

一元多項式 功能 1 求解2個一元多項式的和 2 求解2個一元多項式的差 3 列印一元多項式 注 3 這個本來不算是乙個功能,但是發現列印一元多項式的時候問題很多。例如 1x應該列印成 x,x 0不應該應該列印出來 1.結點的定義 typedef struct polynomial polynomi...

一元多項式

include include using namespace std 定義結構體 typedef struct polynode polynode,polylist 建立關於多項式結構體的單鏈表,以係數0結束輸入 polylist polycreate 尾插法建立單鏈表 rear next nul...