帮忙看看程序啊!不知道那里错了
flish 2005-04-10 08:49:12 一元多项式的相加。。
写了个程序。老是有错。。
大家帮忙看看。。改了的时候写名改的什么地方,为什么改。
谢谢了
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#include <iostream>
using namespace std;
typedef struct n
{
float coef;
int exp;
struct n *next;
}*ploy,node;
void AddNode(float coef,int exp,ploy &p)
//н¨Ò»ÏϵÊý¡¢Ö¸ÊýΪcoef¡¢exp£©¼Óµ½pµÄºóÃæ
{
node *s=new node;
s->coef=coef;
s->exp=exp;
p->next=s;
p=s;
}
ploy creat_list()
//½¨Á¢Ò»¸öµ¥Á´±í
{
ploy L=new node;
node *s,*r;
r=L;
float x;
int y;
cout<<"coef"<<endl;
cin>>x;
cout<<"exp"<<endl;
cin>>y;
while(x!=0)
{s=new node;
s->coef=x;
s->exp=y;
r->next=s;
r=s;
cout<<"coef"<<endl;
cin>>x;
cout<<"exp"<<endl;
cin>>y;
}
if(r!=NULL)
r->next=NULL;
return L;
}
void AddPoly(ploy A,ploy B, ploy &C)
{
float x;
node *pa,*pb,*pc;
pa=A->next; pb=B->next;
C=new node;
C->next=NULL; //½¨Á¢Ò»¸ö¿ÕÁ´±í
pc=C; //pcÖ¸ÏòCµÄ×îºóÒ»¸ö½áµã
while(pa!=NULL&&pb!=NULL)
{
if(pa->exp < pb->exp)
{
AddNode(pa->coef, pa->exp, pc); //½«AÖеÄÒ»Ïî¼ÓÈëCÖÐ
pa=pa->next;
}
else if(pa->exp > pb->exp)
{
AddNode(pb->coef, pb->exp, pc); //½«BÖеÄÒ»Ïî¼ÓÈëCÖÐ
pb=pb->next;
}
else
{ x=pa->coef + pb->coef;
if(x != 0)
AddNode(x, pa->exp, pc); //½«²úÉúµÄÒ»Ïî¼ÓÈëCÖÐ
pa=pa->next;
pb=pb->next;
}
}
while(pa!=NULL) //½«AÖÐÊ£ÓàµÄ¸÷Ïî¼ÓÈëCÖÐ
{
AddNode(pa->coef, pa->exp, pc);
pa=pa->next;
}
while(pb!=NULL) //½«BÖÐÊ£ÓàµÄ¸÷Ïî¼ÓÈëCÖÐ
{
AddNode(pb->coef, pb->exp, pc);
pb=pb->next;
}
pc->next=NULL;
}
int main()
{cout<<"ÊäÈëÁ´±í,coefÊäÈë0½áÊø"<<endl;
ploy A,B;
A=creat_list();
cout<<"ÊäÈëÁ´±í,coefÊäÈë0½áÊø"<<endl;
B=creat_list();
ploy C=NULL;
AddPoly(A,B,C) ;
while(C->next!=NULL)
{cout<<'+'<<C->coef <<' '<<C->exp<<endl;C=C->next;}
return 0;
}