91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

在C語言下實現多項式的四則運算及合并同類項,并按升序排序的功能,已成功運行!功能模塊包括合并同類項,升序排序,創建多項式,輸出多項式,加法,減法,乘法,除法。

資源截圖

代碼片段和文件信息


??//Polynomial_list
//功能:輸入兩個多項式(不要求是升冪排列,程序將自動合并同類項和排序),進行加減乘除運算
#include
#include
#include
//結點定義
typedef?struct?PolyNode
{
??int?exp;?????//指數
??float?coef;????//系數
??PolyNode*?next;??
}PolyNode??*?PolyList;

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

//創建多項式鏈表,返回頭指針
PolyList??CreatePolyList()
{
PolyNode?*s*rear*head;
int?e;????????//指數
float?c;?????//系數
int?n=1;????????//計數器
head?=(PolyNode?*)?malloc(sizeof(PolyNode));
rear?=?head;
//輸入多項式的系數和指數,若輸入系數為0退出
printf(“請輸入多項式的第%d項的系數和指數(用逗號分開):“??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(“請輸入多項式的第%d項的系數和指數:“??n++);
scanf(“%f%d“??&c??&e);
}
?rear->next?=?NULL;
?return?head;
}

//計算兩個多項式(可不按順序排列)?,?結果存到鏈表PolyC中,并返回
PolyList?PolyAdd(PolyList?PolyA??PolyList?PolyB)
{
PolyList?PolyC?;
SortPoly(PolyA);
SortPoly(PolyB);
float?sum=0;//存儲兩項系數和
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)??//如果兩兩系數不為0,則將兩項和存入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指數大于pb指數,將pa結點副本插入到PolyC尾部
{
s?=?(PolyNode?*)malloc(sizeof(PolyNode));
s->coef?=?pa->coef;
s->exp?=?pa->exp;
rear->next?=?s?;
rear?=?s?;
pa?=?pa->next;
}
else???//若pb指數大于pa指數,將pb結點副本插入到PolyC尾部
{
s?=?(PolyNode?*)malloc(sizeof(PolyNode));
s->coef?=?pb->coef;
s->exp?=?pb->exp;
rear->next?=?s;
pb?=?pb->next;
rear?=?s?;
}
}
//插入剩余結點
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;
}

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

//將多項式和并同類項
void?MergeP

評論

共有 條評論