C算法:一元多项式的计算任务:能够按照指数降序排列建立并输出多项式,能够完成两个多项式的相加、相减,

发布时间:2021-02-19 18:17:26

C算法:一元多项式的计算任务:能够按照指数降序排列建立并输出多项式,能够完成两个多项式的相加、相减,并将结果输入.亲自能在TC++3.0或者VC++6.0编译成功,编译成功后我会追加分数的.谢谢!

网友回答

#include
#include
typedef struct node{//定义节点类型
float coef;
int expn;
struct node * next;
}PLOY;
void start()//用户选择界面
{ printf(\n);
printf(请选择操作:\n);
printf(0.退出\n);
printf(1.两个一元多项式相加\n);
printf(2.两个一元多项式相乘\n);
printf(3.两个一元多项式相减\n);
} void insert(PLOY *head,PLOY *inpt)//查找位置插入新链节程序
{ PLOY *pre,*now;
int signal=0;
pre=head;//pre定义为现在的前一个链节
if(pre->next==NULL) {pre->next=inpt;}
else {now=pre->next; while(signal==0)
{ if(inpt->expnexpn)//当新链节小于现在的连接时向后移一个链节
{ if(now->next==NULL)
{ now->next=inpt;
signal=1;
} else { pre=now;
now=pre->next; } } else if(inpt->expn>now->expn)//如果发现比现在的链节大了就插入到这个连接的前面
{ inpt->next=now;
pre->next=inpt;
signal=1;
} else { now->coef=now->coef+inpt->coef; signal=1;
free(inpt);//与当前链节相等指数
if(now->coef==0)
{ pre->next=now->next; free(now);
} } } } } PLOY *creat(char ch)//输入多项式
{ PLOY *head,*inpt;
float x;
int y; head=(PLOY *)malloc(sizeof(PLOY));//创建链表头
head->next=NULL;
printf(请输入一元多项式%c:(格式是:系数 指数;以0 0 结束!)\n,ch);
scanf(%f %d,&x,&y);
while(x!=0)
{ inpt=(PLOY *)malloc(sizeof(PLOY));//创建新链节
inpt->coef=x;
inpt->expn=y; inpt->next=NULL; insert(head,inpt);//不然就查找位置并且插入新链节 printf(请输入一元多项式%c的下一项:(以0 0 结束!)\n,ch); scanf(%f %d,&x,&y);
} return head; } PLOY *add
以上问题属网友观点,不代表本站立场,仅供参考!