头上长草了哥 2019-04-08 11:24 采纳率: 100%
浏览 605
已采纳

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

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

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

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

  • 写回答

1条回答

  • DRACULAX05 2019-04-08 11:49
    关注
    #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;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题