一道关于C语言中结构的题,帮小弟我看看,一运行就挂

一道关于C语言中结构的题,帮我看看,一运行就挂!
一个文本文件中存放着一个棒球对的信息。每一行的数据都是这样排列的: 
4 qwqwe werwer 5 2 1 1 
第一项是球员号码,为了方便,范围是0到18.第二项是球员的名,第三项是球员的姓。姓和名都是单独的单词。下一项是官方统计人球员上场次数,紧跟着是击中数、走垒数和跑点数。文件可能包括超过一场比赛的数据,因此同一个球员可能会有多于一次行的数据,而且在不同的行之间有可能有别的球员的数据。 
写一个程序,把这些数据存储到一个结构数组中。结构中必须含有姓、名、上场次数、击中数、走类数和跑点数,以及击球平均成功率。可一使用球员号码作为数组索引。程序应该读到文件结尾,并且应该保存每个球员的累计总和。 
程序读完文件后,应该计算每个球员的击球平均成功率,并且保存到相应的成员结构里。 

击球平均成功率是用球员的累计击中数除以上场累计次数 
然后程序要显示每个球员的累计数据,并且对整个时期显示一行综合统计数据。 


大家帮帮忙吧!想想了好长时间了,也没想出来!  
“存方数据的是文本视图。”[u][/u][color=#0000FF][/color]
 
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct bangqiu{
int a;//球员号码
char fname[10];//球员的名
char lname[10];//球员的姓
int b;//上场次数。
int c;//击中数
int d;//走垒数
int e;//跑点数
float average;
};
struct temps{
int a;//球员号码
char fname[10];//球员的名
char lname[10];//球员的姓
int b;//上场次数。
int c;//击中数
int d;//走垒数
int e;//跑点数
};

int main(void)
{
int count=0;
FILE *fp;
struct bangqiu full[20];
struct temps temp;

if((fp = fopen("we.txt","r")) == NULL)
{
fputs("没有打开文件!",stderr);
exit(EXIT_FAILURE);
}
fscanf(fp,"%4d %4s %4s %4d %4d %4d %4d",full[0].a,full[0].fname,full[0].lname,full[0].b,
  full[0].c,full[0].d,full[0].e);
printf("%d %s %s %d %d %d %d",full[0].a,full[0].fname,full[0].lname,full[0].b,full[0].c,
  full[0].d,full[0].e);
/*
while(fread(&temp,sizeof(struct temps),1,fp) == 1 && count <20)
{
printf("%d %s %s %d %d d %d\n\n",temp.a,temp.fname,temp.lname,temp.b,temp.c,temp.d,temp.e);
count++;
}*/

//两种方法,全挂了!~~ -_-!
system("pause");
return 0;
}


------解决方案--------------------
fscanf()最后一个参数传址