YTUOJ-计算该日在本年中是第几天(用户自己定义类型)
题目描写叙述
定义一个结构体变量(包含年、月、日)。编写一个函数days,由主函数将年、月、日传递给函数days,计算出该日在本年中是第几天并将结果传回主函数输出。
输入
年月日
输出
当年第几天
例子输入
2000 12 31
例子输出
366
提示
主函数已给定例如以下。提交时不须要包括下述主函数
/* C代码 */
int main()
{
y_m_d date;
int days(y_m_d);
int day_sum;
scanf("%d%d%d",&date.year,&date.month,&date.day);
day_sum=days(date);
printf("%d\n",day_sum);
return 0;
}
/* C++代码 */
int main()
{
y_m_d date;
int days(y_m_d);
int day_sum;
cin>>date.year>>date.month>>date.day;
day_sum=days(date);
cout<<day_sum<<endl;
return 0;
}
全代码例如以下:
#include <iostream> using namespace std; struct y_m_d { int year; int month; int day; }; int days(y_m_d d) { int Days=d.day; for (int i=1; i<d.month; i++) { if(i==1||i==3||i==5||i==7||i==8||i==10||i==12) Days+=31; else if (i==4||i==6||i==9||i==11) Days+=30; else if (((d.year)%4==0 && (d.year) % 100 != 0)||(d.year)% 400 == 0) Days+=29; else Days+=28; } return Days; } int main() { y_m_d date; int days(y_m_d); int day_sum; cin>>date.year>>date.month>>date.day; day_sum=days(date); cout<<day_sum<<endl; return 0; }
执行结果:
两周没有刷oj了,突然发现连日期怎么计算都纠结了好久。还是去看曾经的博客才搞定。。。唉。必须找找状态了