#include <stdio.h> int months[12]={31,28,31,30,31,30,31,31,30,31,30,31}; typedef struct{ int year; int month; int day; }Day; int DayOfYear(Day d); int main() { int year, month ,day; while (scanf("%d %d %d", &year, &month, &day) != EOF) { // 注意 while 处理多个 case // 64 位输出请用 printf("%lld") to Day d;d.year=year;d.month=month;d.day=day; printf("%d\n",DayOfYear(d)); } return 0; } int DayOfYear(Day d){ int state=0,days=0;// 是否闰年 if(d.year%400==0||d.year%4==0&&d.year%100)state=1; for(int m=1;m<d.month;m++){ days+=months[m-1]; } days+=d.day; if(state&&d.month>2) days+=1; return days; }