본문 바로가기
my_lesson/_C

9. C_lesson 3차원 배열이 매개변수로 사용된 함수

by boolean 2014. 4. 7.
728x90
3차원 배열

4개반 의 각각 2명의 학생의 임의의 3과목 점수를 입력 받아 출력하고,
개별 학생의 평균과 각 반의 평균을 구하여 출력하는 프로그렘

소스는 보지 말고 막히면 참고..
꼭 같은 방법 아니어도 된다.

[소스보기]

#include <stdio.h>

void score_average(int gr[][2][3], int, int, int);

void main() {
int score[4][2][3];
int i, j, k;

for(i = 0; i < 4; i ++) {
for(j = 0; j < 2; j ++) {
for(k = 0; k < 3; k ++) {
printf("score[%2d][%2d][%2d] 를 입력하시오. :",i, j, k);
scanf("%d", &score[i][j][k]);
}
}
}
printf("score[4][2][3] = {{{");
for(i = 0; i < 4; i ++) {
for(j = 0; j < 2; j ++) {
for(k = 0; k < 3; k ++) {
printf("%2d", score[i][j][k]);
if(k >=0 && k < 2)
printf(", ");
}
if(j == 1 && k ==3){
if(i == 3 && k == 3){
printf("}}}\n");
break;
}
printf("}}\n, {{");
break;
}
printf("}, {");
}
}
score_average(score, 4, 2, 3);
}
void score_average(int gr[][2][3], int sclass, int member, int subject) {
int sclass_sum = 0, subject_sum = 0,subject_average = 0;
int i, j, k;
for(i = 0; i < sclass; i++) {
sclass_sum = 0;
for(j = 0; j < member; j++) {
subject_sum = 0;
for(k = 0; k < subject; k++) {
subject_sum += gr[i][j][k];
}
subject_average = subject_sum / subject;
printf("student%2d average = %4d\n",j + 1, subject_average);

sclass_sum += subject_average;
}
printf("class%4d average = %4d\n\n", i + 1, sclass_sum / member);
}
}



댓글