PTA 一元多項式的乘法與加法運算(鍊錶)

2021-09-17 22:37:00 字數 1564 閱讀 3690

設計函式分別求兩個一元多項式的乘積與和。

輸入分2行,每行分別先給出多項式非零項的個數,再以指數遞降方式輸入乙個多項式非零項係數和指數(絕對值均為不超過1000的整數)。數字間以空格分隔。

輸出分2行,分別以指數遞降方式輸出乘積多項式以及和多項式非零項的係數和指數。數字間以空格分隔,但結尾不能有多餘空格。零多項式應輸出0 0

4 3 4 -5 2  6 1  -2 0

3 5 20 -7 4 3 1

15 24 -25 22 30 21 -10 20 -21 8 35 6 -33 5 14 4 -15 3 18 2 -6 1

5 20 -4 4 -5 2 9 1 -2 0

#include#includetypedef struct polynode *polynomial;

struct polynode

;void attach(int c,int e,polynomial *prear)

polynomial readpoly()

t=p;p=p->link;

free(t);//刪除臨時生成的空節點

return p;}/*

polynomial readpoly()

return head;}*/

int compare( int e1, int e2 )

polynomial polyadd (polynomial p1, polynomial p2)

/* 將未處理完的另乙個多項式的所有節點依次複製到結果多項式中去 */

for ( ; p1; p1 = p1->link ) attach(p1->coef, p1->expon, &rear);

for ( ; p2; p2 = p2->link ) attach(p2->coef, p2->expon, &rear);

rear->link = null;

temp = front;

front = front->link; /*令front指向結果多項式第乙個非零項 */

free(temp); /* 釋放臨時空表頭結點 */

return front;

} polynomial polymulti (polynomial p1, polynomial p2)

ptr1=ptr1->link;

for(; ptr1; ptr1=ptr1->link)

} else//係數不相等則插入

}} ptr2=p;

p=p->link;

free(ptr2);

return p;

}/*將多項式乘法轉換為多項式加法

polynomial polymulti (polynomial p1, polynomial p2)

return p;}*/

void printpoly(polynomial p)

while(p)

printf("\n");

}int main()

PTA 一元多項式的乘法與加法運算

設計函式分別求兩個一元多項式的乘積與和。輸入分2行,每行分別先給出多項式非零項的個數,再以指數遞降方式輸入乙個多項式非零項係數和指數 絕對值均為不超過1000的整數 數字間以空格分隔。輸出分2行,分別以指數遞降方式輸出乘積多項式以及和多項式非零項的係數和指數。數字間以空格分隔,但結尾不能有多餘空格。...

PTA習題 一元多項式的乘法與加法運算

7 2 一元多項式的乘法與加法運算 20 分 設計函式分別求兩個一元多項式的乘積與和。輸入分2行,每行分別先給出多項式非零項的個數,再以指數遞降方式輸入乙個多項式非零項係數和指數 絕對值均為不超過1000的整數 數字間以空格分隔。輸出分2行,分別以指數遞降方式輸出乘積多項式以及和多項式非零項的係數和...

一元多項式的乘法與加法運算

設計函式分別求兩個一元多項式的乘積與和。輸入分2行,每行分別先給出多項式非零項的個數,再以指數遞降方式輸入乙個多項式非零項係數和指數 絕對值均為不超過1000的整數 數字間以空格分隔。輸出分2行,分別以指數遞降方式輸出乘積多項式以及和多項式非零項的係數和指數。數字間以空格分隔,但結尾不能有多餘空格。...