/*在我们现在使用的日历中, 闰年被定义为能被4整除的年份,但是能被100整除而不能被400整除的年是例外,它们不是闰年。
例如:1700, 1800, 1900 和 2100 不是闰年,而 1600, 2000 和 2400是闰年。
给定公元2000年1月1日后的某年某月某日(包括2000年1月1日),你的任务:
(1)给出这一天从公元2000年1月1日开始逝去的天数,(2)判断这一天是当年的第几天。*/
#include<stdio.h>
int judgeyear(int a);
int main()
{
int b=365;
int c=366;
int year,month,day;
int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};计算月的天数,自己想出来的这个方法,感觉还可以,
int i,s=0;
int m=0;
scanf("%d%d%d",&year,&month,&day);
for(i=2000;i<year;i++)
{
if(judgeyear(i))
s+=b;
else
s+=c;
}//计算年的天数
for(i=0;i<month;i++)
{
if(judgeyear(i))
{
s+=a[i];
m+=a[i];
}
else
{
a[2]=29;
s+=a[i];
m+=a[i];
}
}
s+=day;
m+=day;
printf("%d %d",s,m);
return 0;
}
int judgeyear(int a)
{
int n=1;
if(a%4==0&&a%100!=0)
n=0;
return n;
}
程序还有一点小问题,例如输入2000 1 1 输出是1 1 应该是0 1 才对,求大神指点啊