C语言计算距离年底有多少天案例

题目描述

输入一个日期,求该日期距离当年最后一天的天数。例如2016年12月10日,距离2016年底还有21天.

要求用switch语句实现。

输入

输入某年某月某日

输出

输出距离最后一天还有多少天

输入样例

2016 12 10

输出样例

21

源代码

#include <stdio.h>

int main() {
    int year, month, day;
    printf("请输入日期(年 月 日):");
    scanf("%d %d %d", &year, &month, &day);

    int daysLeft = 0;
    switch (month) {
        case 12:
            daysLeft += 30; // 12月份已经过去了30天
        case 11:
            daysLeft += 31; // 11月份已经过去了31天
        case 10:
            daysLeft += 30; // 10月份已经过去了30天
        case 9:
            daysLeft += 31; // 9月份已经过去了31天
        case 8:
            daysLeft += 31; // 8月份已经过去了31天
        case 7:
            daysLeft += 30; // 7月份已经过去了30天
        case 6:
            daysLeft += 31; // 6月份已经过去了31天
        case 5:
            daysLeft += 30; // 5月份已经过去了30天
        case 4:
            daysLeft += 31; // 4月份已经过去了31天
        case 3:
            daysLeft += 28; // 3月份已经过去了28天
        case 2:
            daysLeft += 31; // 2月份已经过去了31天
        case 1:
            break;
        default:
            printf("输入的月份有误。\n");
            return 1;
    }

    if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
        daysLeft++;  // 闰年的2月有29天,需要加1天
    }

    daysLeft = 365 - daysLeft - day; // 计算剩余天数,不需要再加上当前日期

    printf("距离最后一天还有 %d 天。\n", daysLeft);

    return 0;
}

这个程序使用了一个 switch 语句来根据输入的月份计算距离最后一天的天数。根据每个月的天数进行累加,并考虑闰年的情况。在 switch 语句中,每个 case 表示一个月份,根据月份的大小依次累加对应的天数。最后,从累加的总天数中减去输入日期的天数,得到距离最后一天的天数。

需要注意的是,这个程序没有对输入日期的合法性进行检查,例如没有判断月份是否在有效范围内,也没有判断日期是否超出了该月的天数。在实际应用中,可以根据需要进行相应的输入验证。

运行截图

图片[1]-C语言计算距离年底有多少天案例-QQ沐编程

© 版权声明
THE END
喜欢就支持一下吧
点赞8赞赏 分享