解题思路:

整体思路可以分成三步。

首先,读入年、月、日三个数据。由于日期包含多个相关信息,所以可以用结构体把年、月、日放在一起,这样逻辑更清晰。

其次,判断输入年份是否是闰年。因为闰年和平年的区别主要体现在二月份:平年二月有 28 天,闰年二月有 29 天。闰年的判断规则是:能被 4 整除且不能被 100 整除,或者能被 400 整除。

然后,从 1 月开始,把目标月份之前的每个月天数累加起来。比如输入的是 5 月 10 日,就先累加 1 月、2 月、3 月、4 月的天数,再加上 10 天。这样得到的结果就是该日期在这一年中的第几天。

在累加月份天数时,需要根据月份分类处理:1、3、5、7、8、10、12 月是 31 天;4、6、9、11 月是 30 天;2 月则根据是否为闰年来决定是 28 天还是 29 天。

最后,将前面月份的总天数加上当前月份的日期数,并输出结果。

注意事项:

参考代码:

#include<stdio.h>

struct time{

int year;

int month;

int day;

}t1;

int main(){

int sum=0;

struct time *p=&t1;

scanf("%d %d %d",&p->year,&p->month,&p->day);

int leap=(p->year%4==0&&p->year%100!=0)||p->year%400==0;

for(int i=1;i<p->month;i++){

if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)sum+=31;

else if(i==2)sum+=leap?29:28;

else sum+=30;

}

printf("%d",sum+=p->day);

return 0;

}


点赞(0)
 

0.0分

0 人评分

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

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

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

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

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

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

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

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

评论列表 共有 0 条评论

暂无评论