mul()函数的问题。。。,急!!!(中间有几个函数给省了,代码太长)

#include<iostream>
using namespace std;
typedef struct LNode{
int coef;
int expn;
struct LNode *next;
}LNode,*polynomail;
void creatpolyn(polynomail &p,int m) { }
void printpolyn(polynomail p) { }

polynomail sorting(polynomail &N) { }

polynomail add(polynomail &pa,polynomail &pb) {
polynomail c,pc;
pc=(polynomail)malloc(sizeof(LNode));
pc->next=NULL;
pa=pa->next;
pb=pb->next;
while(pa && pb) {
if((pa->expn)>(pb->expn)) {
c=(polynomail)malloc(sizeof(LNode));
c->expn=pb->expn;
c->coef=pb->coef;
pb=pb->next; }
else if((pa->expn)<(pb->expn)) {
c=(polynomail)malloc(sizeof(LNode));
c->expn=pa->expn;
c->coef=pa->coef;
pa=pa->next; }
else{
c=(polynomail)malloc(sizeof(LNode));
c->expn=pa->expn;
c->coef=((pa->coef)+(pb->coef));
pa=pa->next;
pb=pb->next; }
c->next=pc->next;
pc->next=c;}
if(!pa&&pb) {
while(c->next!=NULL){
c=c->next;}
c->next=pb;}
if(!pb && pa) {
while(c->next!=NULL){
c=c->next;}
c->next=pa;}
return pc;
}

polynomail sub(polynomail &pa,polynomail &pb) {
polynomail h;
h=pb;
while(pb!=NULL){
pb->coef=-(pb->coef);
pb=pb->next;}
pb=h;
return add(pa,pb);
}

polynomail mul(polynomail &pa,polynomail &pb) {
polynomail e,pe,h,head,tou,s;
h=(polynomail)malloc(sizeof(LNode));
h->coef=0;h->expn=0; //h->next=NULL;
h->next=(polynomail)malloc(sizeof(LNode));
h->next->coef=0;h->next->expn=0;
h->next->next=NULL;

pe=(polynomail)malloc(sizeof(LNode));
pe->coef=0;pe->expn=0;
pe->next=NULL;

head=h;
tou=pe;

pa=pa->next;
pb=pb->next;s=pb;
while(pa!=NULL){

for( ;pb!=NULL;pb=pb->next) {

e=(polynomail)malloc(sizeof(LNode));
e->coef=(pa->coef)*(pb->coef);
e->expn=(pa->expn)+(pb->expn);
e->next=NULL;
pe->next=e;
pe=pe->next;
}
h=add(tou,h);
sorting(h);
pb=s;
pa=pa->next;
}
return h;}

int main(){
int n,m;
polynomail pa,pb,pc,pd,pe;
cout<<"请输入一元多项式pa的项数: ";
cin>>n;
creatpolyn(pa,n);
sorting(pa);//sorting(pa,n);
cout<<"pa=";printpolyn(pa);cout<<endl;
cout<<"请输入一元多项式pb的项数: ";
cin>>m;
creatpolyn(pb,m);
sorting(pb);//sorting(pb,m);
cout<<"pb=";printpolyn(pb);cout<<endl;

//pc=add(pa,pb);cout<<"结果:pa+pb=";printpolyn(pc);

//pd=sub(pa,pb);cout<<"结果:pa-pb=";printpolyn(pd);

pe=mul(pa,pb);cout<<"结果:pa*pb=";printpolyn(pe);
cout<<endl;
return 0;}

第1个回答  2010-11-28
编译又编译不出来错误,好歹说下你输入的是什么,什么功能撒
相似回答