青少年编程知识记录 codecoming

【题解】结构体与闰年

【题目描述】

定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天,注意闰年问题。

【输入描述】

年月日

【输出描述】

当年第几天

【样例输入】

2000 12 31

【样例输出】

366

【题目分析】

  1. 比较简单题目,需要注意闰年的情况,从输入样例看,第一个数字决定是否闰年。判断闰年函数参考 :判断闰年

  2. 单独写一个函数用来判断是否闰年。

  3. 可以把每个月的总天数直接放到数组里。实际上就是二月份有区别。

  4. 遇到月份中间的天数,比如3月4号这样的,我们只需要把前面每个月的天数加到当前这个里面就行了。

  5. 真正考试的是时候是送分题,因为结果就两个。




【参考代码】

#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;    }



(adsbygoogle = window.adsbygoogle || []).push({});

作者:亿万年的星光 分类:题解目录 浏览: