Problem H: 今年第几天?
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 723 Solved: 310
Description
定义一个函数,其参数为年、月、日的值,返回这一天为该年的第几天。要求在main函数中输入年月日,然后调用这个函数求值,并在main函数中输出结果。
Input
年、月、日3个整数(不考虑非正常的年月日)
Output
这一天为这一年的第几天
Sample Input
1980 4 18 Sample Output
109 HINT
在下面代码基础上完成
 
 #include<iostream>
 
 using namespace std;
 
 int days(int y, int m, int d);
 
 int main()
 
 {
 
      int year, month, day;
 
      cin>>year>>month>>day;
 
      cout<<days(year, month, day)<<endl;
 
      return 0;
 
 }
 
 int days(int y, int m, int d)
 
 { }
#include<iostream> 
using namespace std; 
int days(int y, int m, int d); 
int main() 
{ int year, month, day; cin>>year>>month>>day; cout<<days(year, month, day)<<endl; return 0; 
} 
int days(int y, int m, int d) 
{ int a[12]={31,28,31,30,31,30,31,31,30,31,30,31},sum=0; for(int i=0;i<m-1;i++) { sum+=a[i]; } if(m>=1&&m<=12) { if((m==2)&&(d>=1&&d<=28)) { sum=sum+d; if(((y%4==0&&y%100!=0)||(y%400==0))&&(m>2)) return sum+1; else return sum; } if((m==1||m==3||m==5||m==7||m==8||m==10||m==12)&&(d<=31&&d>=1)) { sum=sum+d; if(((y%4==0&&y%100!=0)||(y%400==0))&&(m>2)) return sum+1; else return sum; } if((m==4||m==6||m==9||m==11)&&(d<=30&&d>=1)) { sum=sum+d; if(((y%4==0&&y%100!=0)||(y%400==0))&&(m>2)) return sum+1; else return sum; } } 
}