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

【题解】结构体与闰年

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

【题目描述】

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

【输入描述】

年月日

【输出描述】

当年第几天

【样例输入】

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;

}


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

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

    分享给朋友:

    相关文章

    【题解】进制转换(2019青岛市程序设计竞赛)

    【问题描述】输入十进制正整数n和k,输出n的k进制数。我们熟悉的十进制所需的10个基数(基本的数字符号)是0,1,2,3,4,5,6,7,8,9。当10<k<=16时,k进制的k个基数从小...

    【题解】公式成绩

    【题目描述】学校的期中考试到了。 gp 老师一共收集到 n 个学生的成绩,每个学生有 5 科成绩,分别是语文、数学、英语、政治、历史。(ai,bi,ci,di,ei) gp 老师突发奇想,他用 m...

    哥德巴赫猜想

    【题目描述】哥德巴赫猜想的命题之一是:大于6 的偶数等于两个素数之和。编程将6~100所有偶数表示成两个素数之和。【输入描述】无【输出描述】分行输出例如:6=3+38=3+5…(每个数只拆开一次,请保...

    线段

    题目描述在一个数轴上有n条线段,现选取其中k条线段使得这k条线段两两没有重合部分,问最大的k为多少?输入格式第一行为一个正整数n,下面n行每行2个数字ai,bi,描述每条线段。输出格式输出文件仅包括1...

    【题解】数字三角问题

    【题解】数字三角问题

    【题目描述】给字一个由n行数字组成的数字三角形(等腰三角形)。试设计一个算法,计算出从三角形的顶至底的一条路径,使该路径经过的数字总和最大。【输入描述】数字三角形的行数和数字三角形【输出描述】最大的路...

    【题解】核电站问题

    【题目描述】一个核电站有N个放核物质的坑,坑排列在一条直线上。如果连续3个坑中放入核物质,则会发生爆炸,于是,在某些坑中可能不放核物质。现在,请你计算:对于给定的N,求不发生爆炸的放置核物质的方案总数...