#include<stdio.h>
#define run(x) x%100!=0&&x%4==0||x%400==0?1:0
int dayOfMonth[13][2]={
0,0,
31,31,
28,29,
31,31,
30,30,
31,31,
30,30,
31,31,
31,31,
30,30,
31,31,
30,30,
31,31,
};
struct Date{
int Day,Month,Year;
void nextday(){
Day++;
if (Day>dayOfMonth[Month][run(Year)]){
Day=1;
Month++;
if(Month>12){
Month=1;
Year++;
}
}
}
};
int buf[3001][13][32];
int main(){
int cnt=0;
int d,m,y,n;
Date a;
a.Day=1;
a.Month=1;
a.Year=0;
while(a.Year!=3001){
buf[a.Year][a.Month][a.Day]=cnt;
a.nextday();
cnt++;
}
while(scanf("%d %d %d",&y,&m,&d)!=EOF){
n=buf[y][m][d]-buf[y][1][1]+1;
printf("%d\n",n);
}
return 0;
#define run(x) x%100!=0&&x%4==0||x%400==0?1:0
int dayOfMonth[13][2]={
0,0,
31,31,
28,29,
31,31,
30,30,
31,31,
30,30,
31,31,
31,31,
30,30,
31,31,
30,30,
31,31,
};
struct Date{
int Day,Month,Year;
void nextday(){
Day++;
if (Day>dayOfMonth[Month][run(Year)]){
Day=1;
Month++;
if(Month>12){
Month=1;
Year++;
}
}
}
};
int buf[3001][13][32];
int main(){
int cnt=0;
int d,m,y,n;
Date a;
a.Day=1;
a.Month=1;
a.Year=0;
while(a.Year!=3001){
buf[a.Year][a.Month][a.Day]=cnt;
a.nextday();
cnt++;
}
while(scanf("%d %d %d",&y,&m,&d)!=EOF){
n=buf[y][m][d]-buf[y][1][1]+1;
printf("%d\n",n);
}
return 0;
}
所犯错误:
竟然少些了一个月的天数!!!!
所以在初始化数组的时候,一定要注意个数对不对,要细心准确
还有除了函数之外,后面都要加;分号