/*需求:特定的某天是该年的第几天
输入:年月日
输出:根据输入计算它是本年的第几天
*/
#include
using namespace std;
struct Date
{//使用结构体定义输入的具体日子
int year;
int month;
int day;
};
int days(Date,int&);//对函数全局声明
int main()
{
Date date;//结构体声明
int day_sum=0;
cout<
cin>>date.year>>date.month>>date.day;
day_sum=days(date,day_sum);//days函数的调用
cout<
<
<
return 0;
}
int days(Date date,int& day_sum)//结构体作为形参,参数传递,地址
{
int m;//月份计数器
int day_month[12]={31,28,31,30,31,30,31,31,30,31,30,31};
//多的是,你不知道的输入错误 o(︶︿︶)o
///int day_sum=0;
for(m=1;m
day_sum=day_sum+day_month[m-1];//计算当前输入日期所在月之前所有天数总和
day_sum=day_sum+date.day;//+本月已过天数
/*for(int i=0;i<12;i++)
cout<
*/
if((date.year%4==0&&date.year%100!=0
||date.year%400==0)&&date.month>=3)//闰年且所求日期为3月及以后
/*注意&& 和||的优先级和结合性,前者优先级大,都是左结合,
故if中判断闰年的条件末尾加了括号,*/
day_sum++;//闰年的闰二月要加一天
return day_sum;
}