#include <stdio.h>
int main(void){
int score[2][3][4] = {
{{72,80,95,60}, {68,98,83,90}, {75,77,84,90}},
{{66,85,90,88}, {95,92,88,95}, {43,72,56,75}}
};
int i,j,k;
for (i = 0; i< 2; i++){
printf("%d class score...\n", i+1);
for (j = 0; j < 3; j++){
for (k = 0; k < 4; k++){
printf("%5d", score[i][j][k]);
}
printf("\n");
}
printf("\n");
}
return 0;
}
### 배열 초기화와 접근
이 코드는 3차원 배열을 사용하여 학생들의 점수를 관리하는 예제입니다. 배열 `score[2][3][4]`는 2개의 반, 각 반에 3명의 학생, 각 학생의 4개 과목 점수를 저장할 수 있습니다. 배열은 다음과 같이 초기화됩니다:
- 첫 번째 반의 학생들 점수: `{{72,80,95,60}, {68,98,83,90}, {75,77,84,90}}`
- 두 번째 반의 학생들 점수: `{{66,85,90,88}, {95,92,88,95}, {43,72,56,75}}`
### 중첩 for 루프를 통한 배열 접근
코드는 3중 중첩된 for 루프를 사용하여 모든 점수를 순회하고 출력합니다.
- 첫 번째 for 루프 (`i`를 인덱스로 사용)는 각 반을 순회합니다.
- 두 번째 for 루프 (`j`를 인덱스로 사용)는 해당 반의 각 학생을 순회합니다.
- 세 번째 for 루프 (`k`를 인덱스로 사용)는 해당 학생의 각 과목 점수를 순회합니다.
### 점수 출력
각 반의 점수는 시작할 때 `"x class score..."`를 출력하여 몇 번째 반의 점수인지 알립니다. 각 점수는 `printf("%5d", score[i][j][k]);`를 사용하여 출력되며, 이는 점수를 최소 너비 5칸에 오른쪽 정렬하여 출력합니다. 학생별 점수 출력 후에는 `printf("\n");`을 사용하여 새 줄로 넘어갑니다. 각 반의 점수 출력이 끝날 때마다 추가적으로 한 줄 더 띄워 반별 구분을 명확히 합니다.
### 프로그램 종료
`return 0;`을 사용하여 프로그램이 성공적으로 실행되었음을 나타내며 프로그램을 종료합니다. 이 예제는 3차원 배열을 사용하여 복잡한 데이터 구조를 관리하고 접근하는 방법을 보여줍니다.
'개념 > 혼자 공부하는 C언어' 카테고리의 다른 글
chapter 14) 2차원 배열의 다양한 초기화 (0) | 2024.09.09 |
---|---|
chapter 14) 2차원 char 배열에 동물 이름을 초기화하는 방법 (0) | 2024.09.08 |
chapter 14) 학생 3명의 네 과목 총점과 평균을 구하는 프로그램 (0) | 2024.09.06 |
chapter 14) 포인터 배열로 여러 개의 문자열 출력 (0) | 2024.09.05 |
chapter 14) 여러 개의 1차원 배열을 2차원 배열로 사용 (0) | 2024.09.04 |