본문 바로가기
자바 Java

배열 / 다차원 배열 ( 2차원 배열 / 3차원 배열 )

by MEHAVING 2019. 10. 5.
반응형

배열

형식이 같은 자료 여러개가 모여 새로운 하나를 이룬 것

ex) int형 자료(즉, 배열의 자료형은 배열의 원소의 자료형) 5개가 모여 int형 배열이 된 것

 

배열의 이름은 변수의 이름이 아니라 메모리의 주소

 

3차원 배열

여러개의 2차원 배열 초기화 리스트가 모여있는 형태

큐빅퍼즐

int arr1[2][3][4]; // 높이 2, 세로 3, 가로 4인 int형 3차원 배열

 

3개의 학급에 각각 3명의 학생이 2개의 과목 시험을 치뤘다

각 학급마다 총 과목점수의 평균을 구하는 프로그래밍

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int mean = 0, i, j;
    int record[3][3][2] = { // 학급 수, 학생 수, 과목 수 ★개수이다★ 배열 선언 동시에 초기화
        {
            {70, 80}, //A학급 학생 1의 성적
            {60, 90}, //A학급 학생 2의 성적
            {100, 40} //A학급 학생 3의 성적
        },
        {
            {90, 80}, //B학급 학생 1의 성적
            {20, 70}, //B학급 학생 2의 성적
            {30, 20} //B학급 학생 3의 성적
        },
        {
            {88, 88}, //C학급 학생 1의 성적
            {77, 77}, //C학급 학생 2의 성적
            {100, 100}, //C학급 학생 3의 성적
        }
    };

    for(i=0; i<3; i++){
        for(j=0; j<2; j++)
            mean += record[0][i][j];
    }
    printf("A학급 전체 평균: %g \n", (double)mean/6);

    mean = 0; //평균 다시 초기화
    for(i=0; i<3; i++){
        for(j=0; j<2; j++)
            mean += record[1][i][j];
    }
    printf("B학급 전체 평균: %g \n", (double)mean/6);

    mean = 0; //평균 다시 초기화
    for(i=0; i<3; i++){
        for(j=0; j<2; j++)
            mean += record[2][i][j];
    }
    printf("C학급 전체 평균: %g \n", (double)mean/6);


    return 0;
}

 

 

1부터 정수를 원소로 갖는 3행 4열의 2차원 배열,  마지막 열에는 모든 행의 합을 더해 출력하라

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void)
{
    int aList[3][4] = {0}; //배열은 항상 초기화 해야 함
    int i=0, j=0, counter = 0, sum = 0;

    for (i=0; i<3; i++){
        for(j=0; j<4; j++){
            while(j!=3){ //j가 3이 아닐 때만 counter 추가
                aList[i][j] = ++counter;
                sum += counter;
                break;
            }
            if(j==3){ //3열에는 counter의 합
                aList[i][j] = sum;
            }

        }
        sum = 0; //행이 바뀔 때마다 합 초기화
    }

    for(i=0; i<3; i++){
        for(j=0; j<4; j++){
            printf("%d\t", aList[i][j]);
        }
    printf("\n");
    }

    return 0;
}

 

결과

1       2       3       6
4       5       6       15
7       8       9       24

반응형

'자바 Java' 카테고리의 다른 글

선행처리  (0) 2019.10.06
다중 포인터  (0) 2019.10.06
c언어의 메모리 구조  (0) 2019.10.05
typedef  (0) 2019.10.05
main method가 있는 class와 object를 생성하는 class와의 관계  (0) 2019.10.02

댓글