请问这个程序那里错了?用的GCC编译。在14和21行出现expected ‘)’ before ‘;’ token

#include<stdio.h>
#include<malloc.h>
#define LEN sizeof(struct Student);
struct Student
{long num;
int score;
struct Student *next;
};
int n;
struct Student *creat(void)
{struct Student *head,*p1,*p2;
head=NULL;
n=0;
p1=p2=malloc(LEN);
scanf("%ld,%d",&p1->num,&p1->score);
while(p1->num!=0)
{ n=n+1;
if(n==1) head=p1;
else p2->next=p1;
p2=p1;
p1=malloc(LEN);
scanf("%ld,%d",&p1->num,&p1->score);
}
p2->next=NULL;
return head;
}
void print(struct Student *head)
{struct Student *p;
printf("\nNow,These %d records are :\n",n);
p=head;
if(head!=NULL)
while(p!=NULL)
{printf("num=%ld,score=%d\n",p->num,p->score);
p=p->next;
}
}
void main()
{struct Student *head;
head=creat();
print(head);
}

#include<stdio.h>
#include<malloc.h>
#define LEN sizeof(struct Student) //问题一
struct Student
{long num;
int score;
struct Student *next;
};
int n;
struct Student *creat(void)
{struct Student *head,*p1,*p2;
head=NULL;
n=0;
p1=p2=(struct Student*)malloc(LEN);//问题二
scanf("%ld,%d",&p1->num,&p1->score);
while(p1->num!=0)
{ n=n+1;
if(n==1) head=p1;
else p2->next=p1;
p2=p1;
p1=(struct Student*)malloc(LEN); //问题二
scanf("%ld,%d",&p1->num,&p1->score);
}
p2->next=NULL;
return head;
}
void print(struct Student *head)
{struct Student *p;
printf("\nNow,These %d records are :\n",n);
p=head;
if(head!=NULL)
while(p!=NULL)
{printf("num=%ld,score=%d\n",p->num,p->score);
p=p->next;
}
}
void main()
{struct Student *head;
head=creat();
print(head);
}
温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜