#include<stdio.h>
#include<string.h>

struct student{
 char _name[10];
 int score[5];
 int sum;
};
student student_array[10];
struct sort{
 int sort_sum;
 char _name[10];
};
sort sort_array[10];

void main(void){
 FILE *in_out;
 in_out = fopen("in_out.txt","r");
 in_out = fopen("in_out.txt","w");
 int student_num = 0;
 int instruction = 0;
 char search_name[10];
 int loc = -1;


 while(1){ 
  printf("메뉴입력:\n");
  printf("<1> 이름/점수 입력, <2> 이름검색/ 점수수정 <3> 저장 <4> 불러오기 <5> 가나다 정렬(이름) <6> 총점 정렬 <7> 종료\n");
  
  scanf("%d",&instruction);

  if(instruction == 1){
   printf("학생 이름과 그 학생의 5과목의 점수를 차례로 입력하십시오.\n");
   printf("예시: 홍길동 10 20 30 40 50\n");
   if(student_num<10){
    scanf("%s",&student_array[student_num]._name);
    for(int j=0;j<5;j++){
     scanf("%d",&student_array[student_num].score[j]);
    }
    printf("성공적으로 입력되었습니다.\n");   
    student_num++;
   }else if(student_num>=10){
    printf("오류! 학생수가 10명이므로 더 이상 입력이 불가능합니다.\n");
   }
  }else if(instruction == 2){
   printf("점수를 수정할 학생의 이름을 입력하십시오.\n");
   scanf("%s",&search_name);
   for(int i=0;i<student_num;i++){
    if(!strcmp(search_name,student_array[i]._name)){
     loc = i;
    }
   }
   if(loc == -1){
    printf("입력하신 학생의 이름이 없습니다.\n");
   }else{
    printf("수정할 점수를 입력하십시오.\n");
    scanf("%d",&student_array[loc].score);   
    loc = -1;
   }
   printf("성공적으로 입력되었습니다.\n");
  }else if(instruction == 3){
   fprintf(in_out,"%d",&student_num);
   for(int i=0;i<student_num;i++){
    fprintf(in_out,"%s ",student_array[i]._name);
    for(int j=0;j<5;j++){
     fprintf(in_out,"%d",student_array[i].score[j]);
    }
    fprintf(in_out,"\n");
   }
   printf("성공적으로 저장되었습니다.\n");
  }else if(instruction == 4){
   fscanf(in_out,"%d",&student_num);
   for(int i=0;i<student_num;i++){
    fscanf(in_out,"%s",student_array[i]._name);
    for(int j=0;j<5;j++){
     fscanf(in_out,"%d",student_array[i].score[j]);
    }
   }
   printf("성공적으로 불러왔습니다.\n");
   printf("학생수 : %d\n",&student_num);
   printf("학생이름 과목1 과목2 과목3 과목4 과목5\n");
   for(int i=0;i<student_num;i++){
    printf("%s",student_array[i]._name);
    for(int j=0;j<5;j++){
     printf("%d",student_array[i].score[j]);
    }
    printf("\n");
   }
  }else if(instruction == 5){

  }else if(instruction == 6){
   for(int i=0;i<student_num;i++){
    int sum = 0;
    for(int j=0;j<5;j++){
     sum = sum + student_array[i].score[j];
    }
    student_array[i].sum = sum;
   }
   if(student_num == 0){
    printf("입력된 학생이 없습니다.\n");
   }else if(student_num == 1){
    printf("학생이름 총점\n");
    printf("%s",student_array[0]._name);
    printf("%d",student_array[0].sum);
   }else if(student_num == 2){
    printf("학생이름 총점\n");
    if(student_array[0].sum > student_array[1].sum){
     printf("%s",student_array[0]._name);
     printf("%d",student_array[0].sum);     
     printf("%s",student_array[1]._name);
     printf("%d",student_array[1].sum);
    }else{
     printf("%s",student_array[1]._name);
     printf("%d",student_array[1].sum);     
     printf("%s",student_array[0]._name);
     printf("%d",student_array[0].sum);
    }
   }else if(student_num > 2){
    int max = student_array[0].sum;    
    int max_loc = 0;
    for(int i=1;i<student_num;i++){
     if(student_array[i].sum > max){
      max = student_array[i].sum;
      max_loc = i;
     }
    }
    int min = student_array[0].sum;
    for(int i=1;i<student_num;i++){
     if(student_array[i].sum < min){
      min = student_array[i].sum;
     }
    }
    sort_array[0].sort_sum = max;
    for(int i=0;i<10;i++){
     sort_array[0]._name[i] = student_array[max_loc]._name[i];
    }
    int pre_max = max;
    for(int i=1;i<student_num;i++){
     max = min;
     for(int j=0;j<student_num;j++){
      if((student_array[j].sum >= min) && (student_array[j].sum < pre_max)){
       max = student_array[j].sum;
       max_loc = j;
      }
     }
     sort_array[i].sort_sum = max;
     for(int j=0;j<10;j++){
      sort_array[i]._name[j] = student_array[max_loc]._name[j];
     }
     pre_max = max;
    }
  }else if(instruction == 7){
   break;
  }
 }
}


학교과제인데 오류나,,ㅠㅠ 뭐가잘못된거야??