关键是闰年的判断:if ((n%4==0 && n%100!=0)||(n%400==0)) 就是闰年
AC:
#include<iostream> using namespace std; int y,m,d; int is_Leapyear(int n); int is_bmonth(int m); int main() { while(cin>>y>>m>>d) { int i=0,k=0; for (i=0;i<m;i++) { k+=is_bmonth(i); } k+=d; cout<<k<<endl; } return 0; } int is_bmonth(int m) { if(m==0) return 0; else if (m==2 && is_Leapyear(y)==1) return 29; else if (m==2 && is_Leapyear(y)==0) return 28; else if (m==1 || m==3 || m==5 || m==7 || m==8 || m==10 || m==12) return 31; else return 30; } int is_Leapyear(int n) { int tem=0; if ((n%4==0 && n%100!=0)||(n%400==0)) tem=1; return tem; }