#include <stdio.h>

int main() {

    /*
        ========================================================
        [문제1] 이차원 배열 선언과 요소 출력
        ========================================================

        2행 3열의 정수형 배열 arr1을 선언하면서
        다음 값을 저장하세요.

        10 20 30
        40 50 60

        배열의 인덱스를 이용하여
        첫 번째 행의 첫 번째 요소와
        두 번째 행의 세 번째 요소를 출력하세요.

        [실행 결과]
        첫 번째 요소 : 10
        마지막 요소 : 60

        [조건]
        1. 배열 이름은 arr1입니다.
        2. 배열을 선언하면서 값을 초기화합니다.
        3. 배열의 인덱스를 이용하여 출력합니다.
        4. 반복문은 사용하지 않습니다.
    */

    // [문제1] 코드 작성
    int arr1[2][3]={10,20,30,40,50,60};
    printf("첫 번째 요소 : %d\n", arr1[0][0]);
    printf("마지막 요소 : %d\n\n", arr1[1][2]);




    printf("\n\n");

    // --------------------------------------------------------


    /*
        ========================================================
        [문제2] 이차원 배열의 크기 확인
        ========================================================

        3행 4열의 정수형 배열 arr2를 선언하고
        모든 요소를 0으로 초기화하세요.

        sizeof 연산자를 이용하여
        다음 세 가지 크기를 출력하세요.

        1. 배열 전체의 크기
        2. 첫 번째 행의 크기
        3. 첫 번째 요소의 크기

        [실행 결과 예시]
        배열 전체 크기 : 48바이트
        첫 번째 행 크기 : 16바이트
        첫 번째 요소 크기 : 4바이트

        [조건]
        1. 배열 이름은 arr2입니다.
        2. 배열을 선언하면서 {0}으로 초기화합니다.
        3. sizeof 연산자를 사용합니다.
        4. 크기는 %zu로 출력합니다.

        ※ 실행 결과는 int가 4바이트인 환경을 기준으로 합니다.
    */

    // [문제2] 코드 작성
    int arr2[3][4]={0};
    
    printf("배열 전체 크기 : %zu바이트\n", sizeof(arr2));
    printf("첫 번째 행 크기 : %zu바이트\n", sizeof(arr2[0]));
    printf("첫 번째 요소 크기 : %zu바이트\n", sizeof(arr2[0][0]));






    printf("\n\n");

    // --------------------------------------------------------


    /*
        ========================================================
        [문제3] 이차원 배열의 모든 요소 출력
        ========================================================

        2행 3열의 정수형 배열 arr3을
        다음과 같이 초기화하세요.

        1 2 3
        4 5 6

        중첩 for문을 사용하여
        배열의 모든 요소를 출력하세요.

        각 행의 요소는 공백으로 구분하고
        한 행을 출력한 후 줄바꿈하세요.

        [실행 결과]
        1 2 3
        4 5 6

        [조건]
        1. 배열 이름은 arr3입니다.
        2. 바깥쪽 반복문 변수는 i3입니다.
        3. 안쪽 반복문 변수는 j3입니다.
        4. 중첩 for문을 사용합니다.
        5. 배열의 인덱스를 이용하여 출력합니다.
    */

    // [문제3] 코드 작성
    int arr3[2][3];

    for (int i3=0; i3<2; i3++) {
        for (int j3=0; j3<3; j3++) {
            scanf("%d", &arr3[i3][j3]);
        }
    }
    
    for (int i3=0; i3<2; i3++) {
        for (int j3=0; j3<3; j3++) {
            printf("%d ", arr3[i3][j3]);
        }
        printf("\n");
    }
    
    
    
    
    printf("\n\n");

    // --------------------------------------------------------


    /*
        ========================================================
        [문제4] 이차원 배열에 정수 입력받기
        ========================================================

        2행 3열의 정수형 배열 arr4를 선언하세요.

        사용자에게 정수 6개를 입력받아
        배열에 차례대로 저장하세요.

        입력이 끝나면 중첩 for문을 사용하여
        저장된 값을 행과 열의 인덱스와 함께 출력하세요.

        [입력 예시]
        10 20 30
        40 50 60

        [실행 결과]
        arr4[0][0] = 10
        arr4[0][1] = 20
        arr4[0][2] = 30
        arr4[1][0] = 40
        arr4[1][1] = 50
        arr4[1][2] = 60

        [조건]
        1. 배열 이름은 arr4입니다.
        2. 반복문 변수는 i4, j4를 사용합니다.
        3. scanf()를 이용하여 입력받습니다.
        4. 입력과 출력에 각각 중첩 for문을 사용합니다.
    */

    // [문제4] 코드 작성
    int arr4[2][3];

    for (int i4=0; i4<2; i4++) {
        for (int j4=0; j4<3; j4++) {
            scanf("%d", &arr4[i4][j4]);
        }
    }

    for (int i4=0; i4<2; i4++) {
        for (int j4=0; j4<3; j4++) {
            printf("arr4[%d][%d]=%d\n", i4, j4, arr4[i4][j4]);
        }
    }







    printf("\n\n");

    // --------------------------------------------------------


    /*
        ========================================================
        [문제5] 이차원 배열의 특정 요소 변경
        ========================================================

        2행 3열의 정수형 배열 arr5를
        다음과 같이 초기화하세요.

        10 20 30
        40 50 60

        사용자에게 변경할 행과 열의 인덱스,
        새로운 값을 입력받으세요.

        해당 위치의 요소를 새로운 값으로 변경한 후
        배열 전체를 출력하세요.

        [입력 예시]
        1 2 99

        [실행 결과]
        10 20 30
        40 50 99

        [조건]
        1. 배열 이름은 arr5입니다.
        2. 행 인덱스는 row5를 사용합니다.
        3. 열 인덱스는 col5를 사용합니다.
        4. 새로운 값은 value5를 사용합니다.
        5. 행은 0~1, 열은 0~2만 유효합니다.
        6. 유효한 위치인 경우에만 값을 변경합니다.
        7. 유효하지 않은 위치라면 배열을 변경하지 않고
           "잘못된 위치입니다."를 출력합니다.
        8. 배열 전체 출력에는 중첩 for문을 사용합니다.
    */

    // [문제5] 코드 작성
    int arr5[2][3]={10,20,30,40,50,60};
    int row5=0;
    int col5=0;
    int value5=0;
    scanf("%d %d %d", &row5, &col5, &value5);
    
    if (0<=row5 && row5<=1 && 0<=col5 && col5<=2) {
        arr5[row5][col5]=value5;
        for (int i5=0; i5<2; i5++) {
            for (int j5=0; j5<3; j5++) {
                printf("%d ", arr5[i5][j5]);
            }
            printf("\n");
        }
    } 
    else {
        printf("잘못된 위치입니다.");
    }

    
    
    
    
    
    
    
    
    
    
    
    
    printf("\n\n");

    // --------------------------------------------------------


    /*
        ========================================================
        [문제6] 이차원 배열의 합계 구하기
        ========================================================

        2행 3열의 정수형 배열 arr6을
        다음과 같이 초기화하세요.

        5 10 15
        20 25 30

        중첩 for문을 사용하여
        배열의 모든 요소를 더한 후
        합계를 출력하세요.

        [실행 결과]
        전체 합계 : 105

        [조건]
        1. 배열 이름은 arr6입니다.
        2. 합계를 저장할 변수 sum6을 사용합니다.
        3. sum6은 0으로 초기화합니다.
        4. 반복문 변수는 i6, j6을 사용합니다.
        5. 중첩 for문을 사용하여 합계를 계산합니다.
    */

    // [문제6] 코드 작성







    printf("\n\n");

    // --------------------------------------------------------


    /*
        ========================================================
        [문제7] 이차원 문자 배열과 문자열 수정
        ========================================================

        3행 10열의 문자형 배열 words7을 선언하면서
        다음 문자열을 저장하세요.

        "Hallo"
        "Coding"
        "Apple"

        반복문을 사용하여
        저장된 문자열 3개를 모두 출력하세요.

        이후 첫 번째 문자열의
        두 번째 문자를 'e'로 변경하세요.

        변경된 첫 번째 문자열을 다시 출력하세요.

        [실행 결과]
        Hallo
        Coding
        Apple

        변경된 문자열 : Hello

        [조건]
        1. 배열 이름은 words7입니다.
        2. 문자열 출력에는 %s를 사용합니다.
        3. 반복문 변수는 i7을 사용합니다.
        4. 배열의 인덱스를 이용하여 문자를 변경합니다.
        5. 문자열 전체를 다시 대입하지 않습니다.
    */

    // [문제7] 코드 작성







    printf("\n\n");

    // --------------------------------------------------------


    /*
        ========================================================
        [문제8] 학생 점수 관리 프로그램
        ========================================================

        학생 3명의 국어, 영어, 수학 점수를
        이차원 배열에 저장하는 프로그램을 작성하세요.

        3행 3열의 정수형 배열 scores8을 선언하세요.

        각 행은 학생 1명을 의미하고,
        각 열은 국어, 영어, 수학 점수를 의미합니다.

        사용자에게 총 9개의 점수를 입력받아
        배열에 저장하세요.

        이후 각 학생의 점수 합계를 계산하여
        출력하세요.

        [입력 예시]
        80 90 70
        60 75 85
        95 90 100

        [실행 결과]
        1번 학생 합계 : 240
        2번 학생 합계 : 220
        3번 학생 합계 : 285

        [조건]
        1. 배열 이름은 scores8입니다.
        2. 반복문 변수는 i8, j8을 사용합니다.
        3. 입력에는 중첩 for문을 사용합니다.
        4. 각 학생의 합계를 저장할 변수 sum8을 사용합니다.
        5. 학생 한 명의 점수를 더하기 전에
           sum8을 0으로 초기화합니다.
        6. 합계 계산에도 중첩 for문을 사용합니다.
        7. 학생별 합계를 각각 출력합니다.
    */

    // [문제8] 코드 작성







    printf("\n\n");

    // --------------------------------------------------------

    return 0;
}

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: