資源簡介
編程實現以下功能:
①分別輸入一元多項式pn (x)和Q n (x)。
從鍵盤輸入一元對項式中各項的系數和指數,并用單鏈表加以表示。
②分別對一元多項式pn (x)和Q n (x)進行升冪排序。
將一元多項式中各子項按照指數從小到大的順序排序。
③分別輸出一元多項式pn (x)和Q n (x)。
將用單鏈表表示的一元多項式輸出,即打印多項式的系數和指數。
④任意輸入一個實數x0,分別求出一元多項式pn (x0)和Q n (x0)的值。
⑤已知有兩個一元多項式分別為Pn (x)和Qn (x),求出兩個多項式的和
R n (x)和差T n (x),分別用單鏈表表示R n (x)和T n (x),并將二者輸出,
(R n (x)=P n (x)+Q n (x),T n (x)=P n (x)-Q n (x))
⑥保存多項式,即分別將一元多項式pn (x)和Q n (x)各項的系數和指數保存到外部磁盤文件。
⑦由程序從所存文件中讀出多項式的系數和指數,重新構建一元多項式 Pn (x) 和Q n (x),并可對其再次進行運算操作。
代碼片段和文件信息
#include??
#include??
#include????
typedef?struct?duoxiangshi?
{??????
int?coef;?????
int?exp;??????
struct?duoxiangshi?*next;?
}DXS;???
int?getNum()?
{??????
int?num;??????
printf(“輸入選擇功能對應的數字:?“);?????
scanf(“%d“?&num);???????
return?num;?
}???
void?fun1(?DXS?*PHEAD?DXS?*QHEAD?)
{??????
int?zs?xs;//定義指數系數?????
printf(“請輸入P(x)中各項的系數和指數\n“);?????
scanf(“%d?%d“?&xs?&zs);?????
while(?zs?!=?0?||?xs?!=?0?)???????
{??????????
DXS?*p?=?(DXS*)?malloc(sizeof(DXS));?????????
p->coef?=?xs;????????
p->exp?=?zs;???????????
PHEAD->next?=?p;?????????
p->next?=?NULL;??????????
PHEAD?=?PHEAD->next;??????????
scanf(“%d?%d“?&xs?&zs);?????
}???????
printf(“請輸入Q(x)中各項的系數和指數\n“);?
????scanf(“%d?%d“?&xs?&zs);?????
while(?zs?!=?0?||xs?!=?0?)?????
{??????????
DXS?*p?=?(DXS*)?malloc(sizeof(DXS));?????????
p->coef?=?xs;?????????
p->exp?=?zs;???????????
QHEAD->next?=?p;?????????
p->next?=?NULL;?????????
QHEAD?=?p;???????????
scanf(“%d?%d“?&xs?&zs);?????
}???
printf(“輸入5顯示結果\n“);??
}
void?fun2(?DXS?*PHEAD?DXS?*QHEAD?)//升冪排序?
{??????DXS?*p?*q;//鏈表的冒泡排序???????
p?=?PHEAD->next;??????
for(?p;?p?!=?NULL;?p?=?p->next?)?????
{??????????
for(?q?=?p->next;?q?!=?NULL;?q?=?q->next?)?????????
{??????????????
if(?p->exp?>?q->exp?)?????????????
{?????????????????
int?temp;???????????????????
temp?=?p->coef;?????????????????
p->coef?=?q->coef;?????????????????
q->coef?=?temp;???????????????????
temp?=?p->exp;????????????????
p->exp?=?q->exp;?????????????????
q->exp?=?temp;?????????????
}?????????
}?????
}???????
p?=?QHEAD->next;??????
for(?p;?p?!=?NULL;?p?=?p->next?)?????
{?
?????????for(?q?=?p->next;?q?!=?NULL;?q?=?q->next?)?????????
?{??????????????
?if(?p->exp?>?q->exp?)?????????????
?{??????????????????
?int?temp;???????????????????
?temp?=?p->coef;?????????????????
?p->coef?=?q->coef;?????????????????
?q->coef?=?temp;???????????????????
?temp?=?p->exp;?????????????????
?p->exp?=?q->exp;????????????????
?q->exp?=?temp;?????????????
?}????????
?}?????
}??????
?printf(“輸入5顯示結果。\n“);??
}
void?fun5(?DXS?*PHEAD?DXS?*QHEAD?)?
{??????
printf(“當前保存的P(x)Q(x)序列如下:\n“);???????
printf(“P(x)=“);??????
while(?PHEAD->next?!=?NULL?)?????
{??????????
PHEAD?=?PHEAD->next;??????????
printf(“%d*x^%d“?PHEAD->coef?PHEAD->exp);???????????
if(?PHEAD->next?!=?NULL?)?????????
{??????????????
printf(“?+?“);?????????
}?????
}???????
printf(“\n“);??????
printf(“Q(x)=“);??????
while(?QHEAD->next?!=?NULL?)?????
{??????????
QHEAD?=?QHEAD->next;??????????
printf(“%d*x^%d“?QHEAD->coef?QHEAD->exp);?
????????if(?QHEAD->next?!=?NULL?)?????????
{??????????????
printf(“?+?“);?????????
}?????
}???????
printf(“\n\n“);??
}
void?fun4(?DXS?*PHEAD?DXS?*QHEAD?)?
{??????
int?x0;??????double?sum;???????
pr
- 上一篇:Maxent 模型代碼
- 下一篇:c++return返回二維數組
評論
共有 條評論