【题解】结构体与闰年
【题目描述】
【输入描述】
年月日
【输出描述】
当年第几天
【样例输入】
2000 12 31
【样例输出】
366
【题目分析】
比较简单题目,需要注意闰年的情况,从输入样例看,第一个数字决定是否闰年。判断闰年函数参考 :判断闰年
单独写一个函数用来判断是否闰年。
可以把每个月的总天数直接放到数组里。实际上就是二月份有区别。
遇到月份中间的天数,比如3月4号这样的,我们只需要把前面每个月的天数加到当前这个里面就行了。
真正考试的是时候是送分题,因为结果就两个。
【参考代码】
#include<iostream>
using namespace std;
//判断闰年的函数
int leap(int year){
if((year%4!=0)||(year%100==0&&year%400!=0))
return 0;
else
return 1;
}
//时间的结构体
struct time{
int year; //年
int month;//月
int day; //
};
time t;
int main()
{
int arr[12]={31,28,31,30,31,30,31,31,30,31,30,31}; //把每个月的天数表示出来
int flag=0; //判断是否闰年的标志
cin>>t.year>>t.month>>t.day;
if(leap(t.year)==1){
flag=1;
}
for(int i=0;i<t.month-1;i++){
if(i==1 && flag==1){
t.day+=arr[i]+1; //是闰年,2月多加一天
}else{
t.day+=arr[i]; //把前面每个月的天数都加到day里面
}
}
cout<<t.day<<endl;
return 0;
}扫描二维码推送至手机访问。
版权声明:本文由青少年编程知识记录发布,如需转载请注明出处。