结构数组设计成绩系统出错

#include<stdio.h>
#define N 2
struct Student
{int num;
char name[10];
float score[3];
float aver;
}score[];

int main()
{
void scanf();
void work();
printf("请输入学号,姓名与各科成绩\n");
scanf();
work();
return 0;
}

void scanf()
{
int i;
for(i=0;i<N;i++)
scanf("%d,%s,%f,%f,%f",&score[i].num,&score[i].name,&score[i].score[0],&score[i].score[1],&score[i].score[2]);
for(i=0;i<N;i++)
score[i].aver=(score[i].score[0]+score[i].score[1]+score[i].score[2])/3.0;
}

void work()
{ int i,j=0;
for(i=0;i<N;i++)
printf("%d,%s,%6.2f\n",score[i].num,score[i].name,score[i].aver);
for(i=0;i<N;i++)
{
if(score[i].aver>score[0].aver)j=i;
}
printf("%d,%s,%5.1f,%5.1f,%5.1f\n",score[j].num,score[j].name,score[j].score[0],score[j].score[1],score[j].score[2]);
}


#include<stdio.h>
#define N 2
struct Student
{
    int num;
    char name[10];
    float score[3];
    float aver;
}score[N];            //没给大小 

int main()
{
    void scanf();
    void work();
    printf("请输入学号,姓名与各科成绩\n");
    scanf();
    work();
    return 0;
}

void scanf()
{
    int i;
    for(i=0;i<N;i++)
        scanf("%d %s %f %f %f",&score[i].num,&score[i].name,&score[i].score[0],&score[i].score[1],&score[i].score[2]); //输入最好别用,号隔开  用,后面全当成字符串了 

    for(i=0;i<N;i++)
        score[i].aver=(score[i].score[0]+score[i].score[1]+score[i].score[2])/3.0;
}

void work()
{
    int i,j=0;
    for(i=0;i<N;i++)
    printf("%d,%s,%6.2f\n",score[i].num,score[i].name,score[i].aver);
    for(i=0;i<N;i++)
    {
        if(score[i].aver>score[0].aver)j=i;
    }
    printf("%d,%s,%5.1f,%5.1f,%5.1f\n",score[j].num,score[j].name,score[j].score[0],score[j].score[1],score[j].score[2]);
}