练习-用switch语句实现输入某年某月某日,判断这一天是这一年的第几天

第1关:用switch语句实现输入某年某月某日,判断这一天是这一年的第几天
任务描述
本关任务:输入某年某月某日,判断这一天是这一年的第几天,要考虑这一年是否是闰年。
测试说明
测试输入:2020 10 5
预期输出:这一天是这一年的第279天

#include<stdio.h>
int main()
{
    int day, month, year, num = 0, leap;
    scanf("%d%d%d", &year, &month, &day);
    /*先计算某月以前月份的总天数*/
    switch (month-1)
    {
    case 1:num = 31; break;
    case 2:num = 59; break;
    case 3:num = 90; break;
    case 4:num = 120; break;
    case 5:num = 151; break;
    case 6:num = 181; break;
    case 7:num = 212; break;
    case 8:num = 243; break; 
    case 9:num = 273; break;
    case 10:num = 304; break; 
    case 11:num = 334; break;
    case 12:num = 365; break;
    }
    num += day;/*再加上当月的天数*/
    if (year % 4==0)/*判断是不是闰年*/
    {
        if (year % 100==0)
        {
            if (year % 400==0)leap = 1;
            else leap = 0;
        }
        leap = 1;
    }
    else leap = 0;
    if (leap)/*如果是闰年且月份大于2,总天数应该加一天*/
    {
        if (month > 2)num += 1;
    }
    printf("这一天是这一年的第%d天", num);
    return 0;
}

······通关成功······
如有问题,敬请斧正。


版权声明:本文为weixin_55764157原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。