Frontier


私信TA

用户名:Frontier

访问量:1267

签 名:

争取秃头!!!

等  级
排  名 4772
经  验 1641
参赛次数 0
文章发表 6
年  龄 0
在职情况 学生
学  校 Bilibili大学
专  业 Software Engine

  自我简介:

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

        (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 人评分

  评论区

  • «
  • »