《C primer plus》 Chapter 14.1

# include <stdio.h>
# include <string.h>
# define LEN 10
struct months
{
    char month[LEN];
    char abbr[LEN];
    int days;
    int number;
};
char *s_get(char *st,int n);
int main(void)
{
    struct months year[12]=
    {
        {"January","Jan",31,1},
        {"February","Feb",28,2},
        {"March","Mar",31,3},
        {"April","Apr",30,4},
        {"May","May",31,5},
        {"June","Jun",30,6},
        {"July","Jul",31,7},
        {"August","Aug",31,8},
        {"September","Sep",30,9},
        {"October","Oct",31,10},
        {"November","Nov",30,11},
        {"December","Dec",31,12}
    };
    int sumdays=0;
    int i,n;
    char name[LEN];
    //enum mon {January,Febuary,March,April,May,June,July,August,September,October,November,December};
    printf("Please enter a month(empty to quit):\n");
    while(s_get(name,LEN)!=NULL && name[0]!='\0')
    {
        for(i=0;i<12;i++)
        {
            if(strcmp(name,year[i].month)==0)
            {
                for(n=0;n<=i;n++)
                {
                    sumdays+=year[n].days;
                }
                printf("The sumdays before this month are %d days.\n",sumdays);
                break;
            }
        }
        printf("Please enter a month(empty to quit):\n");
    }
    puts("Bye!");
    return 0;
}
char *s_get(char *st,int n)
{
    char *find;
    char *ret_val;
    ret_val=fgets(st,n,stdin);
    if(ret_val)
    {
        find=strchr(st,'\n');
        if(find)
            *find='\0';
        else
            while(getchar()!='\n')
                continue;
    }
    return ret_val;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值