当前位置:首页 > 题解目录 > 正文内容

【题解】结构体与闰年

亿万年的星光5年前 (2021-06-06)题解目录2605

【题目描述】

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

【输入描述】

年月日

【输出描述】

当年第几天

【样例输入】

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;

}


    扫描二维码推送至手机访问。

    版权声明:本文由青少年编程知识记录发布,如需转载请注明出处。

    分享给朋友:

    相关文章

    【题解】找零钱—动态规划

    给定一些人民币的面额,数量不限,要求找出金额为m元且人民币张数最少的方案。这个问题既可以是一个贪心问题也可以是一个动态规划的问题。对于现行的人民币面额:1、2、5、10、20、50、100,我们找任何...

    【题解】Crossing River

    【题目描述】几个人过河,每次过两人一人回,速度由慢者决定,问过河所需最短时间。【输入描述】输入t组数据,每组数据第1行输入n,第2行输入n个数,表示每个人过河的时间。【输出描述】输出t行数据,每行1个...

    连词成句

    【题目描述】有一天,毛毛上课的时候遇到了一个难题,老师让同学们把黑板上的单词连成一句话。已知连词的规则是:从待选词中选出正确的单词按照顺序输出,“正确的单词”表示除第一个单词外,其余单词都是小写字母,...

    【题解】放苹果(2)

    【题目描述】把M个同样的苹果放在N个同样的盘子里,不允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。【输入】第一行是测试数据的数目t(0≤t≤20)。以...

    【题解】河中跳房子

    【题目描述】每年奶牛们都要举办各种特殊版本的跳房子比赛,包括在河里从一个岩石跳到另一个岩石。这项激动人心的活动在一条长长的笔直河道中进行,在起点和离起点L远 (1 ≤ L≤ 1,000,000,000...

    【题解】切比雪夫距离

    【题目描述】小C有一个平面!它发现了平面上的两个点,请你求出求它们之间的切比雪夫距离。切比雪夫距离定义为x与y方向坐标差的绝对值较大值。【输入描述】四个整数,a,b,c,d。坐标为(a,b)与(c,d...