학생 수와 퀴즈 개수를 입력 받아 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;
}