반응형

지금까지 학습한 것을 토대로 하여 영화에 대한 정보를 연결 리스트로 저장하고 출력하는 프로그램을 작성하여 보자.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define SIZE 40
typedef struct NODE{
    char name[SIZE];
    int year;
    struct NODE *link;
}NODE;
int menu();
void add(NODE **list, NODE **prev);
void printing(NODE **list);
void exit1(NODE **list,NODE **next);
int main(void)
{
    int cho=0;
    NODE *list=NULL;
    NODE *p,*next,*prev;
    while((cho=menu())!=3){
    getchar();
    if(cho==1)
    {
        add(&list,&prev);
    }
    else if(cho==2)
    {
        printing(&list);
    }
    else if(cho==3)
    {
        exit1(&list,&next);
    break;
    }
    }
    return 0;
}
int menu()
{
    int men=0;
    printf("----------------------\n");
    printf("1. 영화 정보 추가\n");
    printf("2. 영화 정보 출력\n");
    printf("3. 종료\n");
    printf("----------------------\n");
    printf("번호를 선택하세요: ");
    scanf("%d",&men);
    return men;
}
void add(NODE **list, NODE **prev)
{
    NODE *p=NULL;
    p=(NODE*)malloc(sizeof(NODE));
        printf("영화의 제목을 입력하세요: ");
        gets(p->name);
        printf("영화의 개봉 연도를 입력하세요: ");
        scanf("%d",&(p->year));
        if(*list==NULL)
        {*list=p;}
        else
        {(*prev)->link=p;}
            p->link=NULL;
            *prev=p;
}
void printing(NODE **list)
{
    NODE *p=NULL;
    p=*list;
    while(p!=NULL)
    {
        printf("제목: %s\n",p->name);
        printf("년도: %d\n",p->year);
        p=p->link;
    }
}
void exit1(NODE **list,NODE **next)
{
    NODE *p=NULL;
    p=*list;
    while(p!=NULL)
    {
        *next=p->link;
        free(p);
        p=*next;
    }
}
cs




반응형

'컴퓨터 & 프로그래밍 & 전자공학 > C언어' 카테고리의 다른 글

전화 번호부 작성  (2) 2017.02.25
양의 정수 저장  (0) 2017.02.22
단어 입력 받기  (0) 2017.02.21
주소록 저장  (0) 2017.02.21
문자열 동적 메모리  (0) 2017.02.21

+ Recent posts