题目:输入某年某月某日,判断这一天是这一年的第几天?
分析:首先想到闰年是比平年多一天,还有一点是尽管是闰年,如果月份输入的是1或者2月,则多出的这一天是不用考虑的。代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | #include <stdio.h> int main(void) { unsigned int year=0; //年 unsigned int month=0; //月 unsigned int day=0; //日 unsigned int number=0; //是一年中的第几天 unsigned char days[12]={31,28,31,30,31,30,31,31,30,31,30,31}; //每个月有几天 int i; printf("输入年 月 日:"); scanf("%d %d %d",&year,&month,&day); for(i=1;i<month;i++) { number=number+days[i-1]; //累加月份之前月份的天数 } if(((year%4==0&&year%400==0)||(year%4==0&&year%100!=0))&&(month>=3)) { //判断闰年且月份大于等于三月 number=number+1; //增加一天 } number=number+day; //加上本月的天数 printf("\n%d年%d月%d日是一年中的第 %d 天",year,month,day,number); //打印结果 return 0; } |
