这个问题要怎么解决啊

#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>

#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERLOW -2
#define TRUE 1
#define FALSE 0

typedef struct{
​float coef;
​int expn;
}term,ElemType;

typedef struct LNode{
​ElemType data;
​struct LNode *next;
}LNode,*Link,*Position;

typedef struct HeadNode{
​Link head,tail;
​int len;
}LinkList;

typedef LinkList polynomail;
typedef int status;

status MakeNode( Link &p,Elemtype e){
​p=(Link)malloc(sizeof(LNode));
​p->data=e;
​return OK;
}

status InitList( LinkList &L){
​L.head=(Link)malloc(sizeof(LNode));
​Elemtype e;
​e.coef=0,e.expn=-1;
​L.head->data=e;
​L.head->next=NULL;
​L.tail=L.head;
​L.len=0;
​return OK;
}

status SetCurElem(Link &p,ElemType e){
​p->data=e;
​return OK;
}

status InsAfter( Link q, Link s){
​s->next=q->next;
​q->next=s;
​return OK;
}

status ListEmpty(LinkList P){
​if(P.head->next==NULL)
​​return TRUE;
​return FALSE;
}​

status Append( LinkList &L, Link s){
​L.tail->next=s;
​L.len++;
​while (s->next!=NULL){
​​s=s->next;
​​L.len++;
​}
​L.tail=s;
​return OK;
}

int cmp( term e1,term e2){
​if(e1.expn<e2.expn)
​​return -1;
​if(e1.expn==e2.expn)
​​return 0;
​if(e1.expn>e2.expn)
​​return 1;
}

Position GetHead(LinkList L){
​return L.head;
}

Position GetLast (LinkList L){
​return L.tail;
}

Position NextPos(LinkList L,Link p){
​p=p->next;
​return p;
}

status DelFirst( Link h,Link q){
​h->next=q->next;
​return OK;
}

void CreatePolyn(polynomail &p,int m){
​InitList(P);
​Link s,q;
​term e;
​int i;
​printf("\nPlease input &d terms in order:\n",m);
​for(i=1;i<=m;i++){
​​scanf("&f&d",&e.coef,&e.expn);
​​if(MakeNode(s,e)){
​​​q=GetLast(P);
​​​InsAfter(q,s);
​​​P.tail=s;
​​​P.len++;
​​}
​}
​printf("\nCreate polynomail succees!\n");
}

int PrintPolyn(polynomail &p){
​Link p=P.head;
​if(p->next==NULL){
​​printf("\nEmpty LinkList!\n");
​​return OK;
​}
​printf("\nEmpty LinkList!\n");
​while(p!=NULL){
​​if(p->data.expn>=0)
​​​printf("&.2f\t%d\n",p->data.coef,p->data.expn);
​​p=p->next;
​}
​printf("\nPrint succeed!\n");
​return OK;
}

void AddPolyn( polynomial &Pa,polynomail &Pb){
​Link ha=GetHead(Pa);
​Link hb=GetHead(Pb);
​Link qa=NextPos(Pa,ha);
​Link qb=NextPos(Pb,hb);
​while(qa!=NULL && qb!=NULL){
​​term a= qa->data;
​​term b= qb->data;
​​switch(cmp(a,b)){
​​​case 1:
​​​​ha=qa;
​​​​qa=NextPos(Pa,qa);
​​​​break;
​​​case 0:
​​​​term sum;
​​​​sum.expn=a.expn;
​​​​sum.coef=a.coef+b.coef;
​​​​if (sum.coef!=0){
​​​​​SetCurElem( qa,sum);ha=qa;)
​​​​else{
​​​​​DelFirst(ha,qa);
​​​​​free(qa);
​​​​​}
​​​​​DelFirst(hb,qb);
​​​​​free(qb);
​​​​​qb=NextPos(Pb,hb);
​​​​​qa=NextPos(Pa,ha);
​​​​​break;
​​​case -1:
​​​​DelFirst(hb,qb);
​​​​InsAfter(ha,qb);
​​​​Pa.len++;
​​​​qb=NextPos(Pb,hb);
​​​​ha=NextPos(Pa,ha);
​​​​break;​
​​​​}
​​}
​​if(!ListEmpty(Pb) Append(Pa,qb);
}

void SubPolyn ( polynomial &Pa,polynomail &Pb){
​Link ha=GetHead(Pa);
​Link hb=GetHead(Pb);
​Link qa=NextPos(Pa,ha);
​Link qb=NextPos(Pb,hb);
​while (qb!=NULL){
​​qb->data.coef=-qb->data.coef;
​​qb=NextPos(Pb,qb);
​}
​qb=NextPos(Pb,hb);
​while(qa!=NULL && qb!=NULL){
​​term a= qa->data;
​​term b= qb->data;
​​switch(cmp(a,b)){
​​case 1:
​​​ha=qa;
​​​qa=NextPos( Pa,qa);
​​​break;
​​case 0:
​​​term sum;
​​​sum.expn=a.expn;
​​​sum.coef=a.coef+b.coef;
​​​if(sum.coef!=0){
​​​​SetCurElem( qa,sum);
​​​​ha=qa;
​​​}
​​​else{
​​​​DelFirst(ha,qa);
​​​​free(qa);
​​​}
​​​DelFirst(hb,qb);
​​​free(qb);
​​​qb=NextPos(Pb,hb);
​​​qa=NextPos(Pa,ha);
​​​break;
​​case -1:
​​​DelFirst(hb,qb);
​​​InsAfter(ha,qb);
​​​Pa.len++;
​​​qb=NextPos(Pb,hb);
​​​ha=NextPos(Pa,ha);
​​​break:
​​}
​}
​if(!ListEmpty(Pb))
​​Append(Pa,qb);
​free(hb);
}

void MultiPolyn (polynomail &Pa,polynomail &Pb)
{
​polynomail Pc,Pd;
​Link ha=GetHead(Pa);
​Link hb=GetHead(Pb);
​Link qa=NextPos(Pa,ha);
​Link qb=NextPos(Pb,hb);
​Link s,qc;
​inti,j,lena=Pa.len,lenb=Pb.len;
​term a,b,c;

​InitList (Pd);
​for (i=1;i<=lenb;i++){
​​InitList(Pc);
​​for(j=1;j<=lena;j++);{
​​​a= qa->data;
​​​b= qb->data;
​​​c.coef=a.coef*b.coef;
​​​c.expn=a.expn+b.expn;
​​​if(MakeNode(s,c)){
​​​​qc=GetLast(Pc);​
​​​​InsAfter(qc,s);
​​​​Pc.tain=s;
​​​​Pc.len++;
​​​}
​​​qa=NextPos(Pa,qa);
​​}
​​​qa=NextPos(Pa,ha);
​​​qb=NextPos(Pb,qb);
​​​AddPolyn(Pd,Pc);
​}
​Pa=Pd;
}

void DivPolyn( polynomail &Pa, polynomail &Pb){
​polynomail Pc,Pd;
​Link ha=GetHead(Pa);
​Link hb=GetHead(Pb);
​Link qa=NextPos(Pa,ha);
​Link qb=NextPos(Pb,hb);
​Link s,qc;
​term a,b,c;

​InitList(Pd);
​a=qa->data;
​b=qb->data;
​while(a.expn>=b.expn){
​​InitList(Pc);
​​c.expn=a.expn-b.expn;
​​c.coef=a.coef/b.coef;
​​if(MakeNode(s,c)){
​​​qc=GetLast(Pc);
​​​InsAfter(qc,s);
​​​Pc.tail=s;
​​​Pc.len++;
​​}
​​AddPolyn(Pd,Pc);
​​MultiPolyn(Pc,Pb);
​​Su qa=NextPos(Pa,qa);
​​a=qa->data;
​}
​printf("The quotient polynomail is :\n");
​PrintPolyn(Pd);
​printf("The complement minor is :\n");
​PrintPolyn(Pa);
}

int main(){
​polynomail P1;
​polynomail P2;

​CreatePolyn (P1,3);
​CreatePolyn (P2,2);
​printf("\nThe length of poly1 is %d\n",P1.len);
​PrintPolyn(P1);
​printf("\nThe length of poly2 is %d\n",P2.len);
​PrintPolyn(P2);
​DivPolyn(P1,P2);
​return OK;
}

你代码,具体有什么问题啊

(1)C语言中没有引用的概念,所以,你的代码中函数中带&的都要改成指针
(2)括号不匹配,有的地方漏了),有的地方把}写成了)

img

img

(3)变量重名(不知道是不是代码粘贴的问题)

img

你代码用代码段贴出来吧,不然真没法给你改