Minwoo Dev.

<윤성우의 열혈 C프로그래밍> :: 16. 다차원 배열 문제풀이 본문

C++

<윤성우의 열혈 C프로그래밍> :: 16. 다차원 배열 문제풀이

itisminu 2023. 9. 5. 18:11
728x90
반응형
SMALL

문제 16-1

 

문제 1

가로의 길이가 9, 세로의 길이가 3인 int 형 2차원 배열을 선언하여 구구단 중 2단, 3단, 4단을 다음과 같이 저장하자.

그리고 제대로 저장이 되었는지 확인하기 위한 출력을 진행하는 예제를 작성해보자.

#include<stdio.h>

int main(void)
{
    int arr[3][9];
    for(int i=2;i<5;i++){
        for(int j=1;j<10;j++){
            arr[i-2][j-1] = i*j;
        }
    }

    for(int i=0;i<3;i++){
        for(int j=0;j<9;j++){
            printf("%d ",arr[i][j]);
        }
        printf("\n");
    }

    return 0;
}

 

 

문제 2

위 그림의 형태대로 배열 A와 배열 B를 선언하자. 그리고 배열 A는 선언과 동시에 그림에서 명시하는 대로 초기화를 진행하자! 그리고 배열 B도 위 그림에서 보이는대로 초기화를 진행하되, 반드시 배열 A에 저장된 값을 이용해서 초기화를 진행해야 한다.

#include<stdio.h>

int main(void)
{
    int arr1[2][4] = {
        {1,2,3,4},
        {5,6,7,8}
    };

    int arr2[4][2];

    for(int i=0;i<2;i++){
        for(int j=0;j<4;j++){
            arr2[j][i] = arr1[i][j];
        }
    }

    for(int i=0;i<4;i++){
        for(int j=0;j<2;j++){
            printf("%d ",arr2[i][j]);
        }
        printf("\n");
    }

    return 0;
}

 

 

 

문제 3

성적관리 프로그램을 작성하자. 과목은 국어, 영어, 수학, 국사 이렇게 네 과목이고 학생은 철희, 철수, 영희, 영수 이렇게 네 사람이다. 프로그램 사용자로부터 이 네 사람의 네 과목 점수를 입력받는다. 그리고 미리 선언해 놓은 배열에 다음의 형태로 그 값을 저장해야 한다.

저장이 끝났다면, 개인별 총점과 과목별 총점을 계산해서 다음 그림에서 보이는 배열의 위치에 저장해야 한다. 그리고 마지막에는 저장된 값의 검증을 위한 출력을 보여야 한다.

 

#include<stdio.h>

int main(void)
{
    int arr[5][5]={0,};
    printf("철희의 성적을 국어, 영어, 수학, 국사 순으로 입력해주세요.\n");
    for(int i=0;i<4;i++){
        scanf("%d",&arr[0][i]);
    }

    printf("철수의 성적을 국어, 영어, 수학, 국사 순으로 입력해주세요.\n");
    for(int i=0;i<4;i++){
        scanf("%d",&arr[1][i]);
    }

    printf("영희의 성적을 국어, 영어, 수학, 국사 순으로 입력해주세요.\n");
    for(int i=0;i<4;i++){
        scanf("%d",&arr[2][i]);
    }

    printf("영수의 성적을 국어, 영어, 수학, 국사 순으로 입력해주세요.\n");
    for(int i=0;i<4;i++){
        scanf("%d",&arr[3][i]);
    }

    // 개인별 총점 계산
    for(int i=0;i<4;i++){
        for(int j=0;j<4;j++){
            arr[i][4] += arr[i][j];
        }
    }


    // 과목별 총점 계산
    for(int i=0;i<4;i++){
        for(int j=0;j<4;j++){
            arr[4][i] += arr[j][i];
        }
    }

    for(int i=0;i<4;i++){
        for(int j=0;j<4;j++){
            arr[4][4] += arr[i][j];
        }
    }

    for(int i=0;i<5;i++){
        for(int j=0;j<5;j++){
            printf("%d\t",arr[i][j]);
        }
        printf("\n");
    }

    return 0;
}

 

728x90
반응형
LIST