资源简介
加减乘除求导积分求值 加减乘除求导积分求值 加减乘除求导积分求值 加减乘除求导积分求值
代码片段和文件信息
#include
#include
#include
typedef struct{
float coef;
int expn;
}termElemType;
typedef struct LNode{
ElemType data;
struct LNode *next;
}LNode*linkList;
void Copypolyn(linkList PlinkList &S)// L原多项式 S复制储存位置
{
term e;link sp;
p=L.head->next;
while(P->next!=NULL)
{
e=(linkList)malloc(sizeof(LNode));
e.coef=P->data.coef;
e.expn=P->data.expn;
p=p->next;
S.tail->next=NULL;
}
}
void OrderPolyn(linkList &P){ //让多项式升幂排序
linkList abcd;
int n;
if(P->next==NULL) return;
for(;;){
n=0;
b=P->next;c=P;a=b->next;
while(a!=NULL){
if(b->data.expndata.expn){
b->next=a->next;a->next=b;c->next=a;d=a;a=b;b=d;n=n+1;
b=a;
a=a->next;
c=c->next;
}
else if(b->data.expn==a->data.expn){
b->data.coef=a->data.coef+b->data.coef;
b->next=a->next;
free(a);
a=b->next;}
else{
b=a;
a=a->next;
c=c->next;}
}
if(n==0) break;
}
a=P->next;b=P;
while(a!=NULL){
if(a->data.coef==0){b->next=a->next;free(a);a=b->next;}
else{a=a->next;b=b->next;} //删除系数为0的elemtype
}
}
void CreatPolyn(linkList &P){
linkList a;
float f;
P=(linkList)malloc(sizeof(LNode));
P->next=NULL;
printf(“输入系数和指数\n“);
for(;;){
a=(linkList)malloc(sizeof(LNode));
printf(“请输入系数输入0结束\n“);
scanf(“%f“&f);
if(f==0){
free(a);
break;
}
a->data.coef=f;
printf(“请输入指数\n“);
scanf(“%d“&a->data.expn);
a->next=P->next;P->next=a;
}
OrderPolyn(P);
}
void DestroyPolyn(linkList &P){
linkList ab;
a=P->next;b=a;
while(b!=NULL){
b=a->next;
free(a);
a=b;
}
free(P);
P=NULL;
}
void PrintPolyn( linkList P){
linkList a;
a=P->next;
while(a !=NULL){
printf(“%6.3f*x^%d“a->data.coefa->data.expn);
if(a->next!=NULL && (a->next->data.coef>0) ) printf(“+“);
a=a->next;
}
printf(“\n“);
}
int PolynLength(linkList P){
linkList a;
int n=0;
a=P->next;
while(a!=NULL){
n++;a=a->next;
}
return(n);
}
linkList AddPolyn(linkList &Pa linkList &Pb){
linkList abcPc;
int ni;
Pc=( linkList)malloc(sizeof(LNode));
Pc-
评论
共有 条评论