▩ 다차원 배열


   - 1차원배열의 연속적인 형태
   - 논리적으로 테이블의 구조를 가지고 있으나 메모리상으로는 1차원배열의 연속임
   - 배열 처리시 일반적으로 for문이 2개이상 사용되는 경우가 많음
   - 배열명은 배열의 첫 요소의 주소를 가지고 있으나 상수형태임으로 포인터 변수처럼 배열의 주

     소를 증감할 수 없음


1. 2차원 배열
   - 자료형  배열 이름[첨자1, 행][첨자2, 열]
   - 2차원 배열의 선언
     . int arr[3][3];
     . char arr[3][3] =
       {
         {'A', 'B', 'C'},
         {'D', 'E', 'F'},
         {'G', 'H', 'I'},
       };


2. 3차원 배열
   - 자료형  배열 이름[첨자1, 면][첨자2, 행][첨자3, 열]
   - 3차원 배열의 선언
   int arr[2][3][4] =
   {
     {
       {1, 2, 3, 4},
       {5, 6, 7, 8},
       {9, 10, 11, 12}
     },
     {
       {51, 52, 53, 54},
       {55, 56, 57, 58},
       {59, 60, 61, 62}
     }
   };





▩ 다차원 배열 예제



>>>>> 2차원 배열의 사용


 #include <stdio.h>
 #include <conio.h>

 void main() {
   int arr[3][4];
   int k, m;

   for(k=0; k<3; k++) {
      for(m=0; m<4; m++){
        arr[k][m]=k+m;
//        printf("arr[%d][%d]=%d  ", k, m, k+m);
        printf("k=%d m=%d  k+m=%d / ", k, m, k+m);
      }
      printf("\n");
   }

   printf("\n");

   for(k=0; k<3; k++) {
      for(m=0; m<4; m++){
        printf("arr[%d][%d] = %d  ", k, m, arr[k][m]);
      }
      printf("\n");
   }
   getch();
 }


UP!!!▷ 배열에 2의 배수로 입력되어 출력되도록 수정하세요.



>>>>> 2차원 배열에 값을 입력받아 역순으로 출력하는 프로그램


 #include <stdio.h>
 #include <conio.h>

 void main() {
   int arr[2][3];
   int k, m;

   for(k=0; k<2; k++) {
      for(m=0; m<3; m++) {
        printf("arr[%d][%d]의 값을 입력하세요 : ", k, m);
        scanf("%d", &arr[k][m]);
      }
   }

   for(k=1; k>=0; k--) {
      for(m=2; m>=0; m--){
        printf("arr[%d][%d] = %d  ", k, m, arr[k][m]);
      }
      printf("\n");
   }
   printf("\n");
   printf("for문이 끝난 후의 k, m값:k=%d m=%d\n", k, m);
   getch();
 }



>>>>> 2차원 배열의 초기화 1


 #include <stdio.h>
 #include <conio.h>

 void main() {
   char arr[3][3] =
   {
     {'A', 'B', 'C'},
     {'D', 'E', 'F'},
     {'G', 'H', 'I'},
   };
   int k, m;

   for(k=0; k<3; k++) {
      for(m=0; m<3; m++){
         printf("arr[%d][%d] = %c  ", k, m, arr[k][m]);
      }
      printf("\n");
   }
   getch();
 }



>>>>> 2차원 배열의 초기화 2


 #include <stdio.h>
 #include <conio.h>

 void main() {
   char arr[3][3] =
   {
     {'A', 'B', 'C'},
     {'D', 'E', 'F'},
     {'G', 'H', 'I'},
   };
   int k, m;

   printf("* 원래의 값 * ===============================\n");
   for(k=0; k<3; k++) {
      for(m=0; m<3; m++){
         printf("arr[%d][%d] = %c  ", k, m, arr[k][m]);
      }
      printf("\n");
   }

   printf("* 변경된 값 * ===============================\n");
   for(k=0; k<3; k++) {
      for(m=2; m>=0; m--){
         printf("arr[%d][%d] = %c  ", k, m, arr[k][m]);
      }
      printf("\n");
   }
   getch();
 }



>>>>> 3차원 배열의 사용


 #include <stdio.h>
 #include <conio.h>

 void main() {
   int arr[2][3][4] =
   {
     {
       {1, 2, 3, 4},
       {5, 6, 7, 8},
       {9, 10, 11, 12}
     },
     {
       {51, 52, 53, 54},
       {55, 56, 57, 58},
       {59, 60, 61, 62}
     }
   };
   int k, m, n;

   for(k=0; k<2; k++) {
      for(m=0; m<3; m++) {
  for(n=0; n<4; n++){
     printf("arr[%d][%d][%d] = %d  ", k, m, n, arr[k][m][n]);
  }
            printf("\n");
      }
   printf("\n");
   }
   getch();
 }

Posted by 나비:D
:
BLOG main image
by 나비:D

공지사항

카테고리

분류 전체보기 (278)
Programming? (0)
---------------------------.. (0)
나비의삽질 (5)
Application (177)
SQL (51)
Web (27)
etc. (14)
Omnia (0)
---------------------------.. (0)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

달력

«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Total :
Today : Yesterday :