2차배열 문제(복합적) 실력되는데까진 햇습니다.
아이처럼
질문 제목 : 2차배열로 한반이 10명인 반이 3번의 시험을 치른 후, 사용자로부터 점수를 받고
*각시험마다 최대점수 최저점수 평균점수를 출력
*각 학생마다 최고,최하,평균점수를 출력.
*각 시험마다 평균값,중간값(정렬한후 중간에 위치하는 값),모드값(최다빈도값)을 계산하여 출력
*각 학생별로 총점을 구하고 이 총점을 기준으로 버블or선택정렬하라(함수이용)
는 문제 입니다.
질문 요약 :점수를 다받고 평균점수 까지는 제실력으로 했습니다만,
2차배열 최대,최저 점수 부터어떻게 해야하느거지 감이 잡히지않습니다.
이 이후부터 2차배열을 이용해 소스짜는법을 알려주세요.질문 내용 :
#include stdio.h
#define NUM 3
#define STUDENTS 10
int main(void)
{
int grade[NUM][STUDENTS];
int sum =0;
int subsum;
int i,j,average;
for(j=0; jNUM; j++)
{
for(i = 0; i STUDENTS; i++)
{
printf(%d번학생의 #%d시험 성적을 입력하시오: ,i+1,j+1);
scanf(%d, &grade[NUM][STUDENTS]);
}
}
for(j=0; jNUM; j++)
{
subsum =0;
for(i = 0; i STUDENTS; i++)
subsum += grade[NUM][STUDENTS];
printf(#%d시험의 평균성적:%d \n,j+1,subsum/STUDENTS);
sum +=subsum;
}
average = sum / 30;
printf(전체 학생들의 평균점수 %d\n,average);
return 0;
}
/*min = grade[0][0];
max = grade[3][10];
for(j = 0, i = 0; i STUDENTS; i++)
{
sum += grade[NUM][STUDENTS];
if( grade[NUM][STUDENTS] min )
min = grade[NUM][STUDENTS];
if( grade[NUM][STUDENTS] max )
max = grade[NUM][STUDENTS]; 최대,최소값 만들던 잉여물 입니다. */
}
-
초코맛사탕
int grade[NUM][STUDENTS]; 여기서 학생수가 10명 과목이 3개이므로
int grade[STUDENTS][NUM]; 나을것 같네요...최대 최저 점수는 각각 오름차순 내림차순으로 정렬하여 점수를 산출하면 되겠고 평균은 총합을 구한뒤 한생수로 나눠주면 되겠네요...
각 시험마다 평균값은 각 시험별로 sum을 각각 1,2,3으로 하여 한뒤 나눠주면되겠고...
중간값은 위에 오름차순 내림차순으로 정렬한 배열에서 5번째나 6번째 점수를 가져