/*需求:特定的某天是该年的第几天
输入:年月日
输出:根据输入计算它是本年的第几天
*/
#include <iostream>
using namespace std;
struct Date
{//使用结构体定义输入的具体日子
int year;
int month;
int day;
};
int days(Date,int&);//对函数全局声明
int main()
{
Date date;//结构体声明
int day_sum=0;
cout<<"请输入 年、月、日"<<endl;
cin>>date.year>>date.month>>date.day;
day_sum=days(date,day_sum);//days函数的调用
cout<<date.month<<"月"<<date.day<<"日 是"
<<date.year<<"年的第"<<day_sum<<"天"
<<endl;
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<date.month;m++)//注意day_month[]下标从0开始有定义,但是此处从1开始计数,
day_sum=day_sum+day_month[m-1];//计算当前输入日期所在月之前所有天数总和
day_sum=day_sum+date.day;//+本月已过天数
/* for(int i=0;i<12;i++)
cout<<day_month[i]<<" "<<endl;;
*/
if((date.year%4==0&&date.year%100!=0
||date.year%400==0)&&date.month>=3)//闰年且所求日期为3月及以后
/*注意&& 和||的优先级和结合性,前者优先级大,都是左结合,
故if中判断闰年的条件末尾加了括号,*/
day_sum++;//闰年的闰二月要加一天
return day_sum;
}
结构体练习——计算输入的日期为本年度第几天
最新推荐文章于 2024-03-04 12:45:00 发布