大家帮小弟我看一下这个程序的有关问题(函数无法被执行)在哪

大家帮我看一下这个程序的问题(函数无法被执行)在哪?
//实现两个多项式(每项用一个链表结点表示)的相乘
#include <iostream>
using   namespace   std;
struct   SLink                                                             //定义链表结点类型
{
float   ceof;                                                       //浮点类型的系数
int   exp;                                                             //整型的指数
SLink   *next;
};
SLink   *create(SLink   *L);                                     //创建多项式的函数声明
void   add(SLink   *La,SLink   *Lb);                         //两个多项式相加的函数声明
void   print(SLink   *L)                                             //输出多项式的函数
{
SLink   *p;
p=L-> next;
while(!p)
{
if(p-> exp==0)   cout < <p-> ceof;
else   cout < <p-> ceof < < "x^ " < <p-> exp;
if(!p-> next)   cout < < "+ ";
p=p-> next;
}
cout < <endl;
}

int   compare(int   a,int   b)                                     //比较两个数的大小的函数
{
if(a==b)   return   0;
else   if(a> b)   return   -1;
else   if(a <b)   return   1;
}

void   main()                                                               //主函数
{
SLink   *pa,   *pb,   *p,   *q;
pa=pb=p=q=NULL;
cout < < "请依次输第一个多项式各项的系数和指数,以同时为0结束 " < <endl;
SLink   *La=new   SLink;   La=create(La);
cout < < "第一个多项式为: ";   print(La);
        cout < < "请依次输第二个多项式各项的系数和指数,以同时为0结束 " < <endl;
SLink   *Lb=new   SLink;   Lb=create(Lb);
cout < < "第二个多项式为: ";   print(Lb);
pa=La-> next;   pb=Lb-> next;
        int   i=0;  
SLink   *Lc=new   SLink;   Lc-> next=NULL;
SLink   *Ld=new   SLink;   Ld-> next=NULL;
q=Lc;
while(!pb)
{
pa=La-> next;
while(!pa)
{
if(i> =1)   q=Ld;
p=new   SLink;   p-> next=NULL;
p-> ceof=pa-> ceof*pb-> ceof;
                                                        p-> exp=pa-> exp+pb-> exp;
q-> next=p;q=p;
pa=pa-> next;
}
pb=pb-> next;
i++;
if(i> =2)   add(Lc,Ld);
}
//print(La);