解题思路:
整体不算难。定义一个结构体,输入年、月、日;然后判断其是否是闰年,随后相加用户输入的月份减一的总天数,最后再加上用户输入的第几天,即完成。
注意事项:
一定要注意闰年的判断方式:
(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 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复