작은숲:위키노트/C 언어 예제/enum

큰숲백과, 나무를 보지 말고 큰 숲을 보라.
(C 언어 예제/enum에서 넘어옴)
/**
 * Copyright (c) 2001,2002 Yoon, Hyunho <hhyoon@kldp.org>
 * http://mooo.org
 * ----------------------------------------------------------------------
 *
 * LICENSE
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software 
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 */
#include <stdio.h>
enum Month { JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC };
void main()
{    int i, mon;
    int days_month= { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
    char *months= { "January", "February", "March", "April",
        "May", "June", "July", "August", "September", "October",
        "November", "December" };
    printf("Enter your choice: ");
    scanf("%d", &mon);
    printf("\n                    1         2         3\n");
    printf("           1234567890123456789012345678901\n");
    switch (mon - 1)
    {
    case JAN:
        printf("%9s: ", months[JAN]);
        for ( i = 0; i < days_month[JAN]; i++)
            printf("*");
        printf("\n");
        break;
    case FEB:
        printf("%9s: ", months[FEB]);
        for ( i = 0; i < days_month[FEB]; i++)
            printf("*");
        printf("\n");
        break;
    case MAR:
        printf("%9s: ", months[MAR]);
        for ( i = 0; i < days_month[MAR]; i++)
            printf("*");
        printf("\n");
        break;
    case APR:
        printf("%9s: ", months[APR]);
        for ( i = 0; i < days_month[APR]; i++)
            printf("*");
        printf("\n");
        break;
    case MAY:
        printf("%9s: ", months[MAY]);
        for ( i = 0; i < days_month[MAY]; i++)
            printf("*");
        printf("\n");
        break;
    case JUN:
        printf("%9s: ", months[JUN]);
        for ( i = 0; i < days_month[JUN]; i++)
            printf("*");
        printf("\n");
        break;
    case JUL:
        printf("%9s: ", months[JUL]);
        for ( i = 0; i < days_month[JUL]; i++)
            printf("*");
        printf("\n");
        break;
    case AUG:
        printf("%9s: ", months[AUG]);
        for ( i = 0; i < days_month[AUG]; i++)
            printf("*");
        printf("\n");
        break;
    case SEP:
        printf("%9s: ", months[SEP]);
        for ( i = 0; i < days_month[SEP]; i++)
            printf("*");
        printf("\n");
        break;
    case OCT:
        printf("%9s: ", months[OCT]);
        for ( i = 0; i < days_month[OCT]; i++)
            printf("*");
        printf("\n");
        break;
    case NOV:
        printf("%9s: ", months[NOV]);
        for ( i = 0; i < days_month[NOV]; i++)
            printf("*");
        printf("\n");
        break;
    case DEC:
        printf("%9s: ", months[DEC]);
        for ( i = 0; i < days_month[DEC]; i++)
            printf("*");
        printf("\n");
        break;
    default:
        printf("Error!\n");
        break;
    }
    printf("%9s: ", months[mon - 1]);
    for ( i = 0; i < days_month[mon - 1]; i++)
        printf("*");
    printf("\n");
}
이 작은숲 문서의 출처는 위키노트의 위키노트/C 언어 예제/enum 문서입니다.