본문 바로가기
STUDY/CODING

열혈 C : 도전 프로그래밍4_1번, 2번 문제

by 나비로이 2020. 3. 21.

구조체에 대해 복습할 수 있었던 좋은 예제였다..

여기 올려두고

종종 참고해야겠다......

1번 문제

#include <stdio.h>

typedef struct book{
    char title[30];
    char writer[20];
    int pagenum;
}Boook;

int main(void)
{
    int i, count=3;
    
    Boook bk1, bk2, bk3;
    Boook * arr[3]={&bk1, &bk2, &bk3};
    
    
    printf("도서 정보 입력\n");
    for(i=0; i<count; i++)
    {
        printf("저자: ");
        scanf("%s", (**(arr+i)).writer);
        printf("제목: ");
        scanf("%s", (**(arr+i)).title);
        printf("페이지 수: ");
        scanf("%d", &(**(arr+i)).pagenum);
        printf("\n");
    }
    
    printf("\n\n도서 정보 출력\n");
    for(i=0; i<count; i++)
    {
        printf("book %d\n", i+1);
        printf("저자: %s\n", (**(arr+i)).writer);
        printf("책제목: %s\n", (**(arr+i)).title);
        printf("페이지 수: %d\n", (**(arr+i)).pagenum);
        printf("\n");
    }
    return 0;
}

2번 문제

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

typedef struct book{
    char title[30];
    char writer[20];
    int pagenum;
}Boook;

int main(void)
{
    int i, count;
    
    printf("선언할 구조체 개수 입력: ");
    scanf("%d", &count);
    
    Boook * arr = (Boook *)malloc(sizeof(Boook) * count);
    

    
    printf("도서 정보 입력\n");
    
    for(i=0; i<count; i++)
    {
        printf("저자: ");
        scanf("%s", (*(arr+i)).writer);
        printf("제목: ");
        scanf("%s", (*(arr+i)).title);
        printf("페이지 수: ");
        scanf("%d", &((*(arr+i)).pagenum));
        printf("\n");
    }

    printf("\n\n도서 정보 출력\n");
    
    for(i=0; i<count; i++)
    {
        printf("book %d\n", i+1);
        printf("저자: %s\n", (*(arr+i)).writer);
        printf("책제목: %s\n", (*(arr+i)).title);
        printf("페이지 수: %d\n", (*(arr+i)).pagenum);
        printf("\n");
    }
    return 0;
    
    
}
    

댓글