解题思路:
    整体不算难。定义一个结构体,输入年、月、日;然后判断其是否是闰年,随后相加用户输入的月份减一的总天数,最后再加上用户输入的第几天,即完成。
注意事项:
    一定要注意闰年的判断方式:

        (1)普通年能被4整除且不能被100整除的为闰年。(如2004年就是闰年,1900年不是闰年)

        (2)世纪年能被400整除的是闰年。(如2000年是闰年,1900年不是闰年)


参考代码:

#include<iostream>

using namespace std;


struct Date//定义一个结构体

{

     int year;

     int month;

     int day;

    };


int main()

{

     Date c;//结构体对象

     cin >> c.year >> c.month >> c.day;

     int sum = 0;

    

    

     if ((c.year % 400 == 0) || (c.year % 4 == 0 && c.year % 100 != 0))//判断是闰年

     {

         for (int i = 1; i < c.month; i++) //从1月开始计总天数,一直到用户输入的月份的上一个月为止

         {

             int Day = 0;//Day是每个月的天数

             if (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12)

             {

                 Day = 31;

             }

             else if (i == 4 || i == 6 || i == 9 || i == 11)

             {

                 Day = 30;

             }

             else

                  Day = 29;//闰年2月29天


             sum += Day;//累次相加

         }

     }


     else//判断是平年

     {

         for (int i = 1; i < c.month; i++)

         {

             int Day = 0;

             if (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12)

             {

                 Day = 31;

             }

             else if (i == 4 || i == 6 || i == 9 || i == 11)

             {

                 Day = 30;

             }

             else

                  Day = 28;//平年2月28天


             sum += Day;

         }

     }

    

     sum = sum + c.day;//最后与用户输入的该月的第几天相加即得总天数

     cout << sum << endl;

    

    

     return 0;

}


点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论