使用C语言进行一个月份的问题解决

使用C语言编写一个程序,在主函数中从用户处读取一年和两个月(当年)的数字。该计划将输出当年给定月份之间的天数,包括相关月份的天数。

该计划必须考虑(检查)可能的闰年。使用函数计算天数。使用判断年份是否是闰年的函数确定给定年份是否为闰年。

注:给定月份必须关联给定年份。例如,如果用户以一年为单位输入2019年,两个月输入8到11,程序将输出2019年8月至11月(包括这些月)之间的月份天数。

1个回答

#include <stdio.h>

bool isRunYear(int year)
{
    return ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0);
}

int getMonthDay(int year, int month)
{
    if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)
        return 31;

    if (month == 2)
    {
        return isRunYear(year) ? 29 : 28;
    }
    return 30;
}

int main(void)
{
    bool isFirst = true;
    int year = 0, month1 = 0, month2 = 0, nTotal = 0;

    while (year <= 0 || month1 <= 0 || month2 <= 0 || 
        month1 > 12 || month2 > 12 || month1 > month2)
    {
        if (!isFirst) {
            printf("输入错误,请重新输入\n");
        }

        printf("请输入年份:\n");
        scanf("%d", &year);
        printf("请输入起始月份:\n");
        scanf("%d", &month1);
        printf("请输入结束月份:\n");
        scanf("%d", &month2);

        isFirst = false;
    }

    for (int i = month1; i <= month2; i++)
    {
        nTotal += getMonthDay(year, i);
    }

    printf("间隔天数:%d\n", nTotal);
    return 0;
}
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问