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; } }
}