问题及代码:
/*
时间:2016.10
作者:夏晓林
内容:计算第几天
*/
#include <stdio.h>
#include <stdlib.h>
int main()
{
int year,month,day,sum,i;
while(scanf("%d-%d-%d",&year,&month,&day)!=EOF)
{
sum=day;
for(i=1;i<month;i++)
if(i==1||i==3||i==5||i==7||i==9||i==11)
sum=sum+31;
else if(i==4||i==6||i==8||i==10||i==12)
sum=sum+30;
else if(year%4==0||year%400==0)
sum=sum+29;
else
sum=sum+28;
printf("%d\n",sum);
}
return 0;
}
运行结果:
学习心得:
首先知道如何计算闰月,分开情况讨论,同时要考虑代码的多少,尽量做到高效。