C语言作业:switch

38 阅读1分钟

要求:

输入月份,输出当天的天数。 例如: 1、3、5、7、8、10、12(月)有31天; 4、6、9、11(月)有30天; 而2月根据是否是闰年有28/29天之分。 当输入1月时输出当月的天数(31天),然而输入2月后要求继续询问年份,以此再判断是否为闰年。

#include <stdio.h>

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

    switch (month) {
        case 1:
        case 3:
        case 5:
        case 7:
        case 8:
        case 10:
        case 12:
            printf("该月有31天\n");
            break;
        case 4:
        case 6:
        case 9:
        case 11:
            printf("该月有30天\n");
            break;
        case 2:
            printf("请输入年份:");
            scanf("%d", &year);
            // 判断闰年:能被4整除但不能被100整除,或能被400整除
            if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
                printf("该月有29天(闰年)\n");
            } else {
                printf("该月有28天(平年)\n");
            }
            break;
        default:
            printf("输入的月份无效,请输入1-12之间的数字\n");
    }

    return 0;
}

image.png