📄 algo0222.cpp
字号:
Status cmp(PElemType a, PElemType b) {
if (a.expn>=b.expn) return 1;
else return 0;
}
void CreatPolyn(PLinkList &P, int m) { // 算法2.22
// 输入m项的系数和指数,建立表示一元多项式的有序链表P
PLink h, q, s;
PElemType e;
int i;
InitList(P); h = GetHead(P);
e.coef = 0.0; e.expn = -1;
SetCurElem(h, e); // 设置头结点
for (i=1; i<=m; ++i) { // 依次输入m个非零项
// scanf ("%f,%d\n",&e.coef, &e.expn);
e.coef = (float)(random(1, 90) + random(10)/10.0);
if (random(2)) e.coef = -e.coef;
e.expn=e.expn+random(1,10); //产生随机的数据,但是expn值是递增的
if (!LocateElem(P, e, q, cmp)) { // 当前链表中不存在该指数项
if (MakeNode(s,e)) InsFirst(q, s); // 生成结点并插入链表
if(q==P.tail) P.tail=s;
} else i--; // 如果没有产生插入,则将i值减1
}
} // CreatPolyn
Status PrintfPoly(PLinkList P) {
int i=0;
PLink q=P.head->next;
while (q) {
if (fabs(q->data.coef) > 0.005) {
if (i>0) {
if (q->data.coef>0.005) printf(" + ");
else printf(" - ");
printf("%.2f", fabs(q->data.coef));
} else printf("%.2f", q->data.coef);
if (q->data.expn>=1) printf("x");
if (q->data.expn>1) printf("^%d", q->data.expn);
}
q=q->next;
if (++i % 6 == 0) printf("\n ");
}
printf("\n");
return OK;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -