【题解】结构体与闰年
【题目描述】
【输入描述】
年月日
【输出描述】
当年第几天
【样例输入】
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; }
扫描二维码推送至手机访问。
版权声明:本文由青少年编程知识记录发布,如需转载请注明出处。