以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。
首先画下设计流程图:
源程序:
#include<stdio.h>
int main()
{
int year,month,day,sum=0,i;
printf("请以xxxx-xx-xx的格式输入:\n");
scanf("%d-%d-%d",&year,&month,&day);
for(i=1;i<month;i++)
{
if((year%400==0 || (year%4==0&&year%400!=0))&&i==2)//闰年二月多一天
sum+=29;
else if(i==1 || i==3 || i==5 || i==7 || i==8 || i==10 || i==12)
sum+=31;
else
sum+=28;
}
sum+=day;
printf("这一天是%d年的第%d天。\n",year,sum);
return 0;
}
运行结果: