各位C语言高手们,小女子在做一个短学期课程结业设计,帮忙看一下这个程序的异常

各位C语言高手们,小女子在做一个短学期课程结业设计,帮忙看一下这个程序的错误
/*篮球赛个人技术统计系统
设某篮球联赛要统计20名著名球员个人技术数据。要求用高级语言实现篮球联赛个人技术数据处理系统。该系统在磁盘上存储如下信息:
1。每场球赛的个人技术数据。一场球一个人的技术数据包括:姓名,所属球队,三分球个数,篮板球个数,扣篮成功次数,抢断次数,得分,比赛日期。
2。个人技术数据汇总表。表中反映了每个人的技术数据的累计结果。表羡为:姓名,三分球总数,篮板球总数,扣篮成功总次数,抢断总次数,得分总数,比赛场数。
本系统功能如下:
1。创建存储每常球赛个人技术数据的存储系统(第一次输入个人技术数据时),然后自动创建存储个人技术数据汇总表的存储系统。
2。每场比赛后,添加个人技术数据,然后自动修改个人技术数据汇总表
3。能输出当前的个人技术数据汇总表
4。能输出指定技术项目平均每场数据较高的前三名运动员的姓名,所在队名和平均每场的单项数据。*/

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define SIZE 20
#define LEN sizeof(struct Player)
struct Date                        //声明结构体类型 struct Date
{int year;
 int month;
 int day;
};
struct Player                     //声明结构体类型strucct Player
{int num;
char *name;
char *team;
int three_point;
int rebound;
int dunk;
int steal;
int scores;
struct Date;
struct Player *next;
} people[SIZE];                      //定义全局结构体数组Player,包含20个选手数据

struct SummarySheet
{
struct Player;
int match_nums;
struct SummarySheet *next;
};

void save()                         //定义函数save,向文件输出SIZE个选手数据
{FILE*fp;
int i;
  if((fp=fopen("file","w"))==NULL)
{printf("cannot open file\n");
return;
}
   for(i=0;i<SIZE;i++)
{if(fwrite(&people[i],sizeof(struct Player),1,fp)!=1)
   printf("file write error\n");
     fclose(fp);
}

}


int n;                              //定义全局变量,本文件模块中各函数均可使用它

struct Player * creat(void)              //建立链表的函数
{struct Player *p1,*p2;
struct Player *head;
n=0;
p1=p2=(struct Player * )malloc(LEN);    //开辟一个新单元
scanf("%d,%s,%s,%d,%d,%d,%d,%d",&p1->num,&p1->name,&p1->team,&p1->three_point,&p1->rebound,&p1->dunk,&p1->steal,&p1->scores);
scanf("%d,%d,%d",&p1->struct Date.year,&p1->struct Date.month,&p1->struct Date.day);
head=NULL;
while(p1->num!=0)
{n=n+1;
if(n==1)head=p1;
else p2->next=p1;
p2=p1;
p1=(struct Player*)malloc(struct Player);
scanf("%d, %s, %s, %d, %d, %d, %d, %d",&p1->num,&p1->name,&p1->team,&p1->three_point,&p1->rebound,&p1->dunk,&p1->steal,&p1->scores);
scanf("%d, %d, %d",&p1->Date.year,&p1->Date.month,&p1->Date.day);
}
p2->next=NULL;
return(head);
}


void CalculateMemberData(struct SummarySheet *sheet_head, struct SummarySheet *item)  //定义一个函数统计队员总技术数据
{
struct SummarySheet *p, *pre;
p = sheet_head->next;
pre = sheet_head;

while(p)