[C언어 소스] 학생 퀴즈 점수 랜덤 부여하기

실행 화면
실행 화면

학생 수와 퀴즈 개수를 입력 받아 0~10점 사이의 퀴즈 점수를 랜덤으로 부여하시오.

학생 수는 최대 50명, 퀴즈 개수는 최대 10개이다.

2차원 배열로 점수를 기억하는 변수를 선언하시오.

실행화면처럼 사용자로부터 학생 수와 퀴즈 개수를 입력받습니다.

퀴즈 점수는 0~10점 사이의 랜덤 점수를 부여합니다.

실행 화면처럼 합계와 평균을 학생 별로 계산하여 출력합니다.

main 함수에 제어문을 이용하여 작성하세요.

#include <stdio.h> 
#include <stdlib.h> 
#include <time.h> 

#define MAX_STU     50
#define MAX_QUIZ    10

int main()
{
    int scores[MAX_STU][MAX_QUIZ];
    int scnt, qcnt;//학생 수, 퀴즈 개수
    int i, j; //반복문 루프 변수
    int sum = 0;
    double avg;        

    srand((unsigned int)time(NULL));

    //학생 수와 퀴즈 개수 입력    
    printf("학생 수, 퀴즈 개수 입력 : ");
    scanf_s("%d %d", &scnt, &qcnt);
    if (scnt > MAX_STU)
    {
        scnt = MAX_STU;
    }
    if (qcnt > MAX_QUIZ)
    {
        qcnt = MAX_QUIZ;
    }

    //퀴즈 점수(0~10점) 랜덤 부여
    for (i = 0; i < scnt; i++)
    {
        for (j = 0; j < qcnt; j++)
        {
            scores[i][j] = rand() % 11;   //0~10점 퀴즈 점수 부여(랜덤)
        }
    }

    //헤더 출력
    for (i = 0; i < qcnt; i++)
    {
        printf("%4d", i + 1);
    }
    printf("  sum  avg\n");
    printf("------------------------------\n");
    
    //점수 출력 
    for (i = 0; i < scnt; i++)
    {
        sum = 0;        
        for (j = 0; j < qcnt; j++)
        {
            printf("%4d", scores[i][j]);
            sum += scores[i][j];//합계
        }

        avg = sum / (float)qcnt; //실수 결과를 위해 (float)으로 명시적 형변환
        printf("%4d  %4.2f \n", sum, avg);
    }
    return 0;  
}