小弟我刚学C语言不久 想试着写个学生成绩管理系统有有关问题求教

我刚学C语言不久 想试着写个学生成绩管理系统有问题求教。
RT 先上代码,写了一半,编译+连接都成,但运行就出问题了,求解答。
///////////////////////////////////////////////////
  //头文件 & 宏定义//
///////////////////////////////////////////////////

#include <stdio.h>

#include <math.h>

#include <stdlib.h>

#include <string.h>

#include <malloc.h>

#include <windows.h>

#define N 32 // 最大学生数

#define LEN sizeof(STU)

////////////////////////////////////////////////
  //结构体//
////////////////////////////////////////////////

typedef struct student  

{

int StuId; // 学号

char StuName[10]; // 姓名

char StuSex[4]; // 性别

float StuScore[3]; // 三门课(高数、英语、计算机)的成绩  

float ScoreTotal; // 每个学生的总成绩

float ScoreAve; // 每个学生的平均成绩

struct student *next; // 结构体指针

}STU;


////////////////////////////////////////////////////////////
////////////////////子函数声明//////////////////////////////
////////////////////////////////////////////////////////////


STU *LinkListInit(); // 链表初始化

void Menu(); // 主界面函数

STU *StuInput(); // 信息录入函数
 
void StuOutput(STU *); // 信息输出函数

void StuSearch(STU *); // 信息查询函数

void StuSave(STU *); // 信息保存函数

STU *StuLoad(); // 文件数据读取函数


///////////////////////////////////////////////////////////
  // 主函数模块 //
///////////////////////////////////////////////////////////

int main()

{  
STU *HEAD;

  int i; char ch[10]; static count = 0;

HEAD = LinkListInit(); // 表头设置为空

for (i = 0; i < 35; i++)

printf("%c", 2); printf("\n\n");

printf("*****欢迎登录系学生成绩管理系统***\n\n");

for (i = 0; i < 35; i++)

printf("%c", 2); printf("\n\n");

  printf("请输入密码:"); // 密码验证

gets(ch);  

if (strcmp(ch, "1") == 0)

Menu(HEAD); // 进入主界面

else  

{
count++; // 登录次数统计

if (count >= 4) exit(0); // 退出程序 

main(); // 返回主函数

}
   
  return 0;
}

////////////////// 链表初始化模块 ////////////////////

STU *LinkListInit()

{
  return NULL; // 返回空指针
}

////////////////////// 主界面模块 ////////////////////

void Menu(STU *HEAD)

{
  int i;

  system("cls");

printf("**********************\n");
 
printf(" ***欢迎进入主菜单***\n");

  printf("**********************\n\n\n");

  printf("本系统有如下功能-->\n\n\n0.退出系统\n");

printf("1.信息录入\n2.信息显示\n3.信息查询\n");

printf("4.信息修改\n5.信息删除\n6.信息添加\n");

printf("7.信息排序\n8.信息保存\n9.数据装载\n\n\n");

  printf("请选择:");

scanf("%d", &i);

if (i < 0 || i > 9)

{
printf("请输入0--9中的一个数:"); 

scanf("%d", &i);
}



switch (i)

{

case 0: exit(0); // 退出系统

case 1: HEAD = StuInput(); break;  

case 2: StuOutput(HEAD); break;

case 3: StuSearch(HEAD); break;

case 4: break;