프로그래밍[Univ]/C언어

[C언어소스]구조체.배열 이용. 성적 관리

Cloud Travel 2008. 7. 14. 14:26

#include<stdio.h>
#define stu_MAX 2    //학생수를 필요에 따라 변경해주세요.
#define sub_MAX 2   //과목수를 필요에 따라 변경해주세요.

struct grade
{
    int hacban[8];
    char name[20];
    int sub[3];
    int tot;
    float avg;
};

main()
{
    int i, j;
    int sum;
    float avg;

    struct grade str[stu_MAX];
    for ( i = 0 ; i < stu_MAX ; i++ )
    {
        sum = 0;
        printf("학번을 입력해주세요 : ");
        scanf("%s",&str[i].hacban);
        printf("이름을 입력해주세요 : ");
        scanf("%s",&str[i].name);
        for ( j = 0 ; j < sub_MAX ; j++ )
        {
            printf("%d번째 과목 점수를 입력해주세요 : ",j+1);
            scanf("%d",&str[i].sub[j]);
            sum += str[i].sub[j];
        }
        str[i].tot = sum;
        avg = (float)sum/sub_MAX;
        str[i].avg = avg;
    }
/* 표시에 따라서 자유 선택해주세요
    printf("학번\t이름\t");
    for ( j = 0 ; j < sub_MAX ; j++ )
    {
        printf("과목[%d]\t",j+1);
    }
    printf("합계\t평균\n");
*/
    for ( i = 0 ; i < stu_MAX ; i++ )
    {
        printf("%s\t",str[i].hacban);
        printf("%s\t",str[i].name);
        for ( j = 0 ; j < sub_MAX ; j++ )
        {
            printf("%d\t",str[i].sub[j]);
        }
        printf("%d\t%.2f\n",str[i].tot,str[i].avg);
    }
}