69,336
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
int main()
{
int years,months,days,i;
int sum=0,a[12]={31,28,31,30,31,30,31,31,30,31,30,31};
while(3 == scanf("%d/%d/%d", &years,&months,&days))
{
if (months > 12 || days > 31)
continue;
sum = 0;
if((years%4==0 && years%100!=0) || years%400) {
if (months > 2)
sum = 1; /*1: leap year */
}
for(i=0;i<months-1;i++)
sum += a[i];
sum = sum + days;
printf("%d\n",sum);
}
return 0;
}
年月日的范围需要做一下判断;
代码冗余太多,可以做进一步简化,详见上面修改的部分。
如果还有问题,可以进一步对年月日的范围做检测