더북(TheBook)

 

8장 해설

 

 

1분 퀴즈

1.

int arr[2][3]; 

해설_ 2차원 배열은 세로 크기와 가로 크기에 해당하는 값을 순서대로 대괄호 속에 입력합니다. arr[2][3]과 같이 선언하면 3개의 공간을 가진 배열이 2개 있는 2차원 배열이 됩니다.

본문으로

 

2.

해설_ 다차원 배열은 각 차원을 중괄호로 묶고, 쉼표로 구분합니다. 즉, 1차원 배열을 초기화하듯이 { 1, 2 }에 해당하는 배열과 { 3, 4 }에 해당하는 배열을 쉼표로 구분한 뒤 이를 다시 한번 중괄호로 감싸 줍니다.

본문으로

 

3.

해설_ 배열의 인덱스는 0부터 시작하며 arr[1][2]는 인덱스를 행과 열로 봤을 때 1행 2열 요소에 해당합니다. 따라서 이 요소의 값인 F가 G로 바뀝니다.

본문으로

 

4.

해설_ 이중 반복문에서 변수 i는 0, 1 순서대로 커지지만 변수 j는 1, 0 순서대로 작아집니다. 그래서 각 줄의 뒤에서부터 앞으로 오면서 값을 출력합니다.

본문으로

 

 

셀프체크

#include <stdio.h>

int main(void) {
    int input = 0; // 사용자 입력을 저장할 변수
    // 다차원 배열을 이용해 상품 목록 정의
    char * items[3][4] =
    {
        {"1.우유", "2.커피", "3.주스", "4.탄산음료"},
        {"5.칸칩", "6.거북칩", "7.감자칩", "8.고구마칩"},
        {"9.안타볼", "10.초코버섯", "11.가재깡", "12.씨리얼"},
    };
    // 전체 상품 목록 출력
    printf("전체 상품 목록입니다.\n");
    printf("===============================================\n");
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 4; j++) {
            printf("%-12s", items[i][j]);
        }
        printf("\n");
    }
    printf("===============================================\n");
    // 사용자 입력 
    printf("몇 번 상품을 구매하시겠습니까?(1~12) : ");
    scanf_s("%d", &input);
    // 상품이 12개이므로 1부터 12까지 입력받기
    if (input < 1 || input > 12) {
        printf("\n상품 번호를 잘못 입력했습니다. 프로그램을 종료합니다.\n");
        exit(0); // 프로그램 종료
    }
    input -= 1; // 배열은 0부터 시작하므로 입력값에서 1 빼기
    int x = input / 4; // 행 인덱스 구하기
    int y = input % 4; // 열 인덱스 구하기
    printf("\n구매하신 상품은 %s입니다.\n", items[x][y]); // 상품 출력
    printf("이용해 주셔서 감사합니다.\n");
    return 0;
}

본문으로

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.