메인함수 menu에서 오류가 납니다..
syntax error : missing \';\' before \'type\'
\'menu\' : undeclared identifier
이렇게 되는데 왜그런거죠....?;;;;;;

#include <stdio.h>
#include <malloc.h>
#include <ctype.h>
#include <stdlib.h>
#include <string.h>
typedef struct
{
 int student_num;
 char name[10];
 int kor;
 int eng;
 int math;
 int total;
 int rank;
} STU;
STU *stu;

int a;
void initialize(void);
int display_menu(void);
void Input(void);
void Delete_record(void);
void Search_record(void);
void Display_records(void);
void display_rank(void);
void Save(void);
void Load(void);
void print_usage(void);

int main(void)
{
 stu = (STU*)malloc(sizeof(STU) * 20); 
 int menu;
 initialize(); //초기화????
 while(1)
 {
 menu =  display_menu(); //메뉴띄우는거
 
  switch(menu)
  {
  case 1 :
     Input();
     break;
  case 2 :
     Delete_record();
     break;
  case 3 :
     Search_record();
     break;
  case 4 :
     Display_records();
     break;
  case 5 :
     Save();
     break;
  case 6 :
     Load();
     break;
  case 7 :
     printf(\"프로그램을 종료 합니다.\\n\");
   return 0;
  default :
     print_usage();
    break;
  }
 }
 
 return 0;
}
void initialize(void)
{
 printf(\"초기화 구문입니다.\\n\");
}

int display_menu(void)
{
 int i;
 printf(\"=======================\\n\");
 printf(\"  1.수정\\n\");
 printf(\"  2.삭제\\n\");
 printf(\"  3.검색\\n\");
 printf(\"  4.성적 출력\\n\");
 printf(\"  5.저장\\n\");
 printf(\"  6.불러오기\\n\");
 printf(\"  7.종료\\n\");
 printf(\"=======================\\n\");
 printf(\" Number Choice : \");
 scanf(\"%d\",&i);
 
 return i;
}
void Input(void)
{
 int i;
 FILE *fp;
    fp=fopen(\"input.txt\", \"a+\");
    printf(\"입력할 학생수 : \");
 scanf(\"%d\", &a);
  printf(\"성적 입력란 입니다.\\n\");
  printf(\"다음을 입력해주세요.\\n\");
  for(i=0; i<a; i++)
 {
  printf(\"학번 : \");
  scanf(\"%d\", &stu[i].student_num);
  printf(\"이름 : \");
  scanf(\"%s\", stu[i].name);
  printf(\"국어 점수 : \");
  scanf(\"%d\", &stu[i].kor);
  printf(\"영어 점수 : \");
  scanf(\"%d\", &stu[i].eng);
  printf(\"수학 점수 : \");
  scanf(\"%d\", &stu[i].math);      
  fprintf(fp, \"%d %s %d %d %d \\n\",stu[i].student_num,stu[i].name,stu[i].kor,stu[i].eng,stu[i].math);
  /*if(i>=1)
  for(i=0;i<x;i++)
  {
   if(stu[a].student_num==stu[i].student_num)
   printf(\"이미 존재하는 학번 입니다.\");
  }*/
 }
 fclose(fp);
}
void Delete_record(void)
{
 printf(\"삭제 루틴 입니다.\\n\");
}
void Search_record(void)
{
 printf(\"검색 루틴 입니다.\\n\");
}
void Display_records(void)
{
 printf(\"출력 루틴 입니다.\\n\");
 display_rank();
}
void display_rank(void)

 int i, j;    
 FILE *fp1, *fp2;   //파일형 변수 선언
 while(1)   
 {
  fp1=fopen(\"input.txt\",\"r\");  //파일을 읽기전용으로 연다
  if(fp1==NULL)
  {    
   printf(\"해당 파일이 없습니다.\\n\");
   return 1;
  }
  else    
   break;      
 }
 
 for(i=0; i<20; i++)   //i는 0부터 10보다 작은동안 1씩 증가하며 반복
  fscanf(fp1,\"%d %s %f %f %f\", &stu[i].student_num, stu[i].name, &stu[i].kor, &stu[i].eng, &stu[i].math);
 fclose(fp1);    //파일을 각각의 변수에 저장 하고 파일을 닫는다
 
 for(i=0; i<a; i++)  
  stu[i].total = stu[i].kor + stu[i].eng + stu[i].math; //각 과목의 총합을 더하여 total에 저장
 
 for(i=0; i<a; i++)
 {
  stu[i].rank=1;   //rank에 초기값 1을 저장
  for(j=0; j<a; j++)
  {
   if(stu[i].total < stu[j].total)  //총점으로 등수비교하는거
    stu[i].rank++;    //s[i].rank +1을 한다
  }
 }
 fp2=fopen(\"rank.txt\",\"w\");  //파일을 쓰기전용으로 연다
 printf(\"┌───────────【 순위별성적표 】───────────┐\\n\");
 fprintf(fp2,\"┌───────────【 순위별성적표 】───────────┐\\n\");
 printf(\"│     이 름      국어      영어      수학     합계       등수 │\\n\");
 fprintf(fp2,\"│     이 름      국어      영어      수학     합계       등수 │\\n\");
 //성적표 항목 을 콘솔및 파일에 출력
 for(i=1; i<=a; i++)  //i는 1부터 10보다 작거나 같은동안 1씩 증가하며 반복
 {
  for(j=0; j<a; j++)  //j는 0부터 10보다 작은동안 1씩 증가하며 반복
  {
   if(stu[j].rank==i) //각각의 등수가 i과 같으면 (즉, 1등부터 차례로 출력)
   {
    printf(\"├───────────────────────────────┤\\n\");
    fprintf(fp2,\"├───────────────────────────────┤\\n\");
    printf(\"│%d%10s%10.1f%10.1f%10.1f%10.1f%10d  │\\n\", stu[j].student_num,stu[j].name, stu[j].kor, stu[j].eng, stu[j].math, stu[j].total, stu[j].rank);
    fprintf(fp2, \"│%d%10s%10.1f%10.1f%10.1f%10.1f%10d  │\\n\", stu[j].student_num,stu[j].name, stu[j].kor, stu[j].eng, stu[j].math, stu[j].total, stu[j].rank);
   } //해당 사람의 성적을 콘솔및 파일에 출력
  }
 }
 printf(\"└───────────────────────────────┘\\n\");
 fprintf(fp2,\"└───────────────────────────────┘\\n\");
 fclose(fp2); //하단 라인을 출력하고 줄내림

}
void Save(void)
{
 printf(\"저장 루틴 입니다.\\n\");
}
void Load(void)
{
 //STU student;
 FILE *fp, *fp1;
 fp = fopen(\"input.txt\", \"r\");
 
// do{
//  fscanf(fp, \"%d%s%d%d%d\",&student.student_num,student.name,&student.kor,&student.eng,&student.math);
//  printf(\"%4d %4s%4d%4d%4d\\n\",student.student_num,student.name,student.kor,student.eng,student.math);
// }
 while(fgetc(fp) != EOF)
 {
 int i=1;
  fscanf(fp, \"%d%s%d%d%d\",&stu[i].student_num,stu[i].name,&stu[i].kor,&stu[i].eng,&stu[i].math);
  printf(\"%4d %4s%4d%4d%4d\\n\",stu[i].student_num,stu[i].name,stu[i].kor,stu[i].eng,stu[i].math);
  fclose(fp);
  fp1 = fopen(\"output.txt\",\"w\");
  fprintf(fp1, \"%4d %4s%4d%4d%4d\",stu[i].student_num,stu[i].name,stu[i].kor,stu[i].eng,stu[i].math);
  fclose(fp1);
 i++;
 }
}
void print_usage(void)
{
 printf(\"잘못된 숫자를 입력하셧습니다.\\n\");
}