-
3차원 배열의 개념C/다차원 배열 2020. 10. 25. 20:57
개념과 선언 방법
3차원 배열은 큐브라고 생각하면 된다. ( 직육면체로 생각해도 된다. )
3차원 배열은 가로와 세로로 이루어진 2차원 배열에서 높이의 개념이 추가되어 있다.
그리고, 선언은 아래와 같이 한다.
int arr1[2][3][4] <- 높이가 2, 세로가 3, 가로가 4인 int 형 3차원 배열.
3차원 배열은 여러 개의 2차원 배열이 모여 있는 형태로 이해하는 것이 더 합리적이다.
위의 arr1 배열을 다시 보면,
세로가 3이고 가로의 길이가 4인 int 형 배열이 2개 겹쳐 있다고 이해해도 된다.
아래의 예제는 3차원 배열의 크기를 확인하는 예제이다.
프로그램 실행결과
소스 코드
더보기#include <stdio.h> int main(void) { int arr1[2][3][4]; // arr1[높이][세로][가로] double arr2[5][5][5]; // arr2[높이][세로][가로] printf("높이 2, 세로3, 가로4인 int형 3차원 배열 크기 : %d\n", sizeof(arr1)); printf("높이 5, 세로5, 가로5인 double형 3차원 배열 크기 : %d\n", sizeof(arr2)); return 0; }
3차원 배열의 선언과 접근을 확인하는 예제
여기서의 예제는 한학년 전체 학생의 국어와 수학점수를 반별로 구분하여 저장한 예제이다.
각 반별 학생수는 3명이고, 학급의 수도 3개라고 가정하자.
즉, 3차원 배열을 아래와 같이 둘 수 있다.
int record[학급 수][학생 수][과목 수]
필요한 변수는 아래와 같다.
구현은 다음과 같다.
프로그램 실행결과
소스 코드
더보기#include <stdio.h> int main(void) { int total = 0, i, j; int record[3][3][2] = { // 첫 번째 학급의 정보 { {70, 80}, // 첫 번째 학급의 학생 1의 두 과목의 성적 {94, 90}, // 첫 번째 학급의 학생 2의 두 과목의 성적 {70, 85} // 첫 번째 학급의 학생 3의 두 과목의 성적 }, // 두 번째 학급의 정보 { {83, 90}, // 두 번째 학급의 학생 1의 두 과목의 성적 {95, 60}, // 두 번째 학급의 학생 2의 두 과목의 성적 {90, 82} // 두 번째 학급의 학생 3의 두 과목의 성적 }, // 세 번째 학급의 정보 { {98, 89}, // 세 번째 학급의 학생 1의 두 과목의 성적 {99, 94}, // 세 번째 학급의 학생 2의 두 과목의 성적 {91, 87} // 세 번째 학급의 학생 3의 두 과목의 성적 } }; for (i = 0; i < 3; i++) { for (j = 0; j < 2; j++) total += record[0][i][j]; } printf("첫 번째 학급의 성적 전체 총점 : %d\n", total); printf("첫 번째 학급의 성적 평균 : %g\n\n", (double)total/6); total = 0; for (i = 0; i < 3; i++) { for (j = 0; j < 2; j++) total += record[1][i][j]; } printf("두 번째 학급의 성적 전체 총점 : %d\n", total); printf("두 번째 학급의 성적 평균 : %g\n\n", (double)total / 6); total = 0; for (i = 0; i < 3; i++) { for (j = 0; j < 2; j++) total += record[2][i][j]; } printf("세 번째 학급의 성적 전체 총점 : %d\n", total); printf("세 번째 학급의 성적 평균 : %g\n\n", (double)total / 6); return 0; }
아래에서 다차원 배열의 활용 방법을 알아보자.
designatedroom87.tistory.com/222?category=898312
designatedroom87.tistory.com/239?category=898312
'C > 다차원 배열' 카테고리의 다른 글
3차원 배열의 활용 - 테트리스 블록 (0) 2020.10.25 3차원 배열의 활용 - 영한사전 만들기 (2) 2020.10.25