文件及结构体的有关问题

文件及结构体的问题
我写了段带代码,目的是试验一下fread 和 fwrite 但是不知道为什么会有问题
在给结构体赋值时会有问题,求解

#include <stdio.h>
#include <stdlib.h>
#define SIZE 5
struct stu
{
int num;
char name[20];
int score;
}stud[SIZE];
void save(void)
{
FILE* fp;
RE:

printf("please enter the filename:\n");
char filename[40];
scanf("%s",filename);
if((fp=fopen(filename,"wb"))==NULL)
{
printf("can't find that file!\npleaseenter again\n");
system("pause");
goto RE;
exit(0);
}
printf("file found!!\n\n");
int i;
for(i=1;i<=(SIZE-1);i++)
if((fwrite(&stud[i],sizeof(stu),1,fp))!=1)
printf("write fail!\n");
        fclose(fp);
}
int main(void)
{
printf("enter the stu info:\n");
int i;
for (i=0;i<=(SIZE-1);i++)
{

scanf("%d%c%d",&stud[i].num,&stud[i].name,&stud[i].score);
}
save();
system ("pause");
return 0;
}

还有就是不知道为什么我想定义一个结构体类型的指针,
struct stu *s;
for (i=0;i<=(SIZE-1);i++)
{
s=&stud[i];
scanf("%d%c%d",s->num,s->name,s->score);
}

反而出错更厉害
求解

------解决方案--------------------
不少基本的语法问题:

#include <stdio.h>
#include <stdlib.h>
#define SIZE 5
struct stu
{
  int num;
  char name[20];
  int score;
}stud[SIZE];
void save(void)
{
  FILE* fp;
 RE:

  printf("please enter the filename:\n");
  char filename[40];
  scanf("%s",filename);
  if((fp=fopen(filename,"wb"))==NULL)
    {
      printf("can't find that file!\npleaseenter again\n");
      system("pause");
      goto RE;
      exit(0);
    }
  printf("file found!!\n\n");
  int i;
  for(i=1;i<=(SIZE-1);i++)
    if((fwrite(&stud[i],sizeof(struct stu),1,fp))!=1)
      printf("write fail!\n");
  fclose(fp);
}
int main(void)
{
  printf("enter the stu info:\n");
  int i;
  for (i=0;i<=(SIZE-1);i++)
    {

      scanf("%d%s%d",&stud[i].num,stud[i].name,&stud[i].score);
    }
  save();
  system ("pause");
  return 0;
}

------解决方案--------------------
应该不能直接用字符串写入不同类型进入文件吧  
------解决方案--------------------

printf("enter the stu info:\n");
int i;
for (i=0;i<=(SIZE-1);i++)
{
//scanf("%d%c%d",&stud[i].num,&stud[i].name,&stud[i].score);
scanf("%d %s %d",&stud[i].num,stud[i].name,&stud[i].score);