头上长草了哥 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 怎么获取下面的: glove_word2id.json和 glove_numpy.npy 这两个文件
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug