/*
    프로그램명 : 학점 계산 프로그램V0.1
*/
#include <stdio.h>
#define N 3    //상수
//[0] 구조체 설계
struct Record{
    int Num;            //번호
    int Eng;            //영어
    int Jap;            //일어
    int Tot;            //총점
    float Avg;        //평균
    char Grade;        //학점
};
void main(void){
    //[1] Init
    int i;
    struct Record InputData[N];//입력
    //[2] Input
    {
        for(i = 0;i < 3;i++){
            printf("학생번호 : _\b");
            scanf("%d", &InputData[i].Num);
            printf("\n영어점수 : ___\b\b\b");
            scanf("%d", &InputData[i].Eng);
            printf("\n일어점수 : ___\b\b\b");
            scanf("%d", &InputData[i].Jap);
        }
    }
    //[3] Process
    for(i = 0;i < N;i++){
        //[i]총점
        {
            InputData[i].Tot = 
                InputData[i].Eng 
                    + InputData[i].Jap;
        }
        //[ii]평균
        {
            InputData[i].Avg = 
                InputData[i].Tot / 2.0;
        }
        //[iii]학점
        {
            if(InputData[i].Avg > 90 
                && InputData[i].Avg <= 100){
                InputData[i].Grade = 'A';
            }
            else if(InputData[i].Avg > 80){
                InputData[i].Grade = 'B';
            }
            else if(InputData[i].Avg > 70){
                InputData[i].Grade = 'C';
            }
            else if(InputData[i].Avg > 60){
                InputData[i].Grade = 'D';
            }
            else{
                InputData[i].Grade = 'F';
            }
        }
        //[iv]평균 반올림 : 3.5 -> 4
        {
            InputData[i].Avg = 
                (int)(InputData[i].Avg + 0.5);
        }
    }
    //[4] Output
    {
        printf("\n처리 데이터 출력\n");
        printf("번호 영어 일어 총점 평균 학점\n");
        for(i = 0;i < N;i++){
            printf(
                "%4d %4d %4d %4d %4.1f %4c\n"
                , InputData[i].Num
                , InputData[i].Eng
                , InputData[i].Jap
                , InputData[i].Tot
                , InputData[i].Avg
                , InputData[i].Grade
                );
        }
        printf("\n원본 데이터 출력\n");
        for(i = 0;i < N;i++){
            printf("%d %d %d\n"
                , InputData[i].Num
                , InputData[i].Eng
                , InputData[i].Jap);
        }
    }
}