题目要求:实现多项式的运算,输入两个多项式,相加后保存在一个新的多项式里,能看就看看吧,勿喷啊../* Note:Your choice is C IDE */
#include "stdio.h"
#define LEN sizeof(polyNode)
struct polyNode
{
double coef; //系数
int exp; //指数
struct polyNode *next; //指向下一项的指针
};
struct polyNode *polyPointer;
polyPointer *Attach(int c,int e,polyPointer *d)
{
polyPointer *x=(polyNode*)malloc(LEN);
x->coef=c;
x->exp=e;
d->next=x;
return x;
}
ployPointer *PolyAdd(polyPointer a,polyPointer b)
{
polyPointer *p,*q,*d,*c;
int x;
p=a;
q=b;
c=(ployNode)malloc(LEN);
    d=c;   //初始化
while((p!=NULL)&&(q!=NULL))
char Compare(int p->exp,int q->exp)
{
if(p->exp=q->exp)
return '=';
else if(p->exp>q->exp)
return '>';
else if(p->exp<q->exp)
return '<';
}
switch(Compare(p->exp,q->exp))
{
case '=':
  x=p->coef+q->coef;    //系数相加
  if(x!=0)
  d=Attach(x,p->exp,d);   //将新结点链入
  p=p->next;   
  q=q->next;//各前进一步
  break;
case '>':
  d=Attach(p->coef,p->exp,d)
  //复制p所指向的结点并链入C中
  p=p->next;    //p前进一步
  break;
case '<'
  d=Attach(q->coef,q->exp,d);
  //复制q所指向的结点并链入c中
  q=q->next;   //q前进一步
  break;
}
while(p!=NULL)                 //复制p的剩余部分
{
d=Attach(p->coef,p->exp,d);
p=p->next;
}
while(q!=NULL)
{
d=Attach(q->coef,q->exp,d); //复制q的剩余部分
q=q->next;
}
d->next=NULL;                 //最后结点
//删除临时用结点
p=c;
c=c->link;
delete p;     
reutrn c;
}void main()
{
int a,b,c,d;
ployNode new_1,new_2,*temp_1,*temp_2,*temp_3;
printf("%s\n","请输入一组多项式:");
scanf("%d %d",&a,&b);
scanf("%d %d",&c,&d);
*temp_1=Attach(a,b,new_1);
*temp_2=Attach(c,d,new_2);
temp_3=ployPointer(temp_1,temp_2);
printf("计算结果为:%d,%d",temp_2->coef,temp_3->exp);
}