xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

資源簡(jiǎn)介

在C語(yǔ)言下實(shí)現(xiàn)多項(xiàng)式的四則運(yùn)算及合并同類項(xiàng),并按升序排序的功能,已成功運(yùn)行!功能模塊包括合并同類項(xiàng),升序排序,創(chuàng)建多項(xiàng)式,輸出多項(xiàng)式,加法,減法,乘法,除法。

資源截圖

代碼片段和文件信息


??//Polynomial_list
//功能:輸入兩個(gè)多項(xiàng)式(不要求是升冪排列,程序?qū)⒆詣?dòng)合并同類項(xiàng)和排序),進(jìn)行加減乘除運(yùn)算
#include
#include
#include
//結(jié)點(diǎn)定義
typedef?struct?PolyNode
{
??int?exp;?????//指數(shù)
??float?coef;????//系數(shù)
??PolyNode*?next;??
}PolyNode??*?PolyList;

//函數(shù)聲明
PolyList??CreatePolyList();?//創(chuàng)建多項(xiàng)式鏈表,返回頭指針
void?DisplayPolyList(PolyList?Poly);//顯示多項(xiàng)式
void?DestroyPolyList(PolyList?L);//釋放鏈表所用存儲(chǔ)空間
void?MergePoly(PolyList?Poly);//將多項(xiàng)式和并同類項(xiàng)
void?SortPoly(PolyList?Poly);//將多項(xiàng)式按升序排列
PolyList?PolyAdd(PolyList?PolyA??PolyList?PolyB);//多項(xiàng)式相加,返回和多項(xiàng)式鏈表頭指針
PolyList?PolySub(PolyList?polya??PolyList?polyb);//多項(xiàng)式相減,返回差多項(xiàng)式鏈表頭指針
PolyList?PolyMutiply(PolyList?PolyA??PolyList?PolyB);//多項(xiàng)式相乘,結(jié)果由PolyC返回
PolyList?PolyDivide(PolyList?PolyA??PolyList?PolyB);//多項(xiàng)式相除,結(jié)果存到PolyC中,商和余數(shù)用系數(shù)為0的結(jié)點(diǎn)分開(kāi)
//函數(shù)實(shí)現(xiàn)

//創(chuàng)建多項(xiàng)式鏈表,返回頭指針
PolyList??CreatePolyList()
{
PolyNode?*s*rear*head;
int?e;????????//指數(shù)
float?c;?????//系數(shù)
int?n=1;????????//計(jì)數(shù)器
head?=(PolyNode?*)?malloc(sizeof(PolyNode));
rear?=?head;
//輸入多項(xiàng)式的系數(shù)和指數(shù),若輸入系數(shù)為0退出
printf(“請(qǐng)輸入多項(xiàng)式的第%d項(xiàng)的系數(shù)和指數(shù)(用逗號(hào)分開(kāi)):“??n++);
scanf(“%f%d“??&c??&e);
while(fabs(c)?>?1e-6)???????????
{???s?=?(PolyNode?*)malloc(sizeof(PolyNode));
????s->exp?=?e;
s->coef?=?c;
rear->next?=?s;
rear?=?s;
printf(“請(qǐng)輸入多項(xiàng)式的第%d項(xiàng)的系數(shù)和指數(shù):“??n++);
scanf(“%f%d“??&c??&e);
}
?rear->next?=?NULL;
?return?head;
}

//計(jì)算兩個(gè)多項(xiàng)式(可不按順序排列)?,?結(jié)果存到鏈表PolyC中,并返回
PolyList?PolyAdd(PolyList?PolyA??PolyList?PolyB)
{
PolyList?PolyC?;
SortPoly(PolyA);
SortPoly(PolyB);
float?sum=0;//存儲(chǔ)兩項(xiàng)系數(shù)和
PolyNode?*pa??*pb??*rear??*s?;
PolyC?=?(PolyNode?*)malloc(sizeof(PolyNode));
pa?=?PolyA->next;
pb?=?PolyB->next;
rear?=?PolyC;
rear->next?=?NULL;
while(pa?&&?pb)
{
if(pa->exp?==?pb->exp)
{
sum?=?pa->coef+pb->coef;
if(fabs(sum)>1e-6)??//如果兩兩系數(shù)不為0,則將兩項(xiàng)和存入s中,并插入PolyC尾部
{
s?=?(PolyNode?*)malloc(sizeof(PolyNode));
s->coef?=?sum;
s->exp?=?pa->exp;
rear->next?=?s;
rear?=?s;
}
//papb指針后移
pa?=?pa->next;
pb?=?pb->next;
}
else?if(pa->exp>pb->exp)???//若pa指數(shù)大于pb指數(shù),將pa結(jié)點(diǎn)副本插入到PolyC尾部
{
s?=?(PolyNode?*)malloc(sizeof(PolyNode));
s->coef?=?pa->coef;
s->exp?=?pa->exp;
rear->next?=?s?;
rear?=?s?;
pa?=?pa->next;
}
else???//若pb指數(shù)大于pa指數(shù),將pb結(jié)點(diǎn)副本插入到PolyC尾部
{
s?=?(PolyNode?*)malloc(sizeof(PolyNode));
s->coef?=?pb->coef;
s->exp?=?pb->exp;
rear->next?=?s;
pb?=?pb->next;
rear?=?s?;
}
}
//插入剩余結(jié)點(diǎn)
while(pa)
{
s?=?(PolyNode?*)malloc(sizeof(PolyNode));
s->coef?=?pa->coef;
s->exp?=?pa->exp;
rear->next?=?s;
pa?=?pa->next;
rear?=?s?;
}
while(pb)
{
s?=?(PolyNode?*)malloc(sizeof(PolyNode));
s->coef?=?pb->coef;
s->exp?=?pb->exp;
rear->next?=?s;
pb?=?pb->next;
rear?=?s?;
}
rear->next?=?NULL;
return?PolyC;
}

//釋放鏈表所用存儲(chǔ)空間
void?DestroyPolyList(PolyList?L)
{
PolyNode?*?p??*temp;
p?=?L;
while(p!=NULL)
{temp?=?p?;?p?=?p->next;?free(temp);?}
}

//將多項(xiàng)式和并同類項(xiàng)
void?MergeP

評(píng)論

共有 條評(píng)論

相關(guān)資源