利用顺序表计算间隔天数

问题描述】将每月天数存放在顺序表,计算某天到2021-10-10的间隔天数
【输入形式】输入三个数,以空格为分隔
【输出形式】一个整数
【样例输入】1997 2 18
【样例输出】9000
【样例说明】
【评分标准】

#include<iostream>
using namespace std;
typedef struct node
{
	int *day;
	int length;
}list;
int main()
{
	list A;             //设置一个list类型的变量
	A.day = new int[12];  //结构体数组(结构体内部一个变量为数组)创建空间:int day[12] 的空间
	A.day[0]=31;
	A.day[1]=28;
	A.day[2]=31;
	A.day[3]=30;
	A.day[4]=31;
	A.day[5]=30;
	A.day[6]=31;
	A.day[7]=31;
	A.day[8]=30;
	A.day[9]=31;
	A.day[10]=30;
	A.day[11]=31;
	A.length = 12;
	int y, m, d;
	int sum = 0;
	cin >> y >> m >> d;
	if (y == 2021)				     //首先判断在年份相同时      
	{							     //(当前月剩余天数+10月份的10天)
		sum = 10 + (A.day[m - 1] - d);
		m++;                        //m++进入下个月份
		for (; m < 10; m++)                            
		{
			sum = sum + A.day[m - 1]; //再加上当前月和十月间隔月份所包含天
		}
	}
	else							//当年份在2021之前时  (不要漏了闰年+1)
	{
		sum = (A.day[m - 1] - d)+10;	//计算当前月份剩余天数 和 10月份包含天数x10
		m++;						//进入下一个月
		for (; m <= 12; m++)        //计算剩余月份所包含的天数
        {
			sum = sum + A.day[m - 1];
		}
		for (m=1; m < 10; m++)        //从1月份开始 计算2021年月份所包含天数
		{
			sum = sum + A.day[m - 1];
		}
		y++;			//进入下一个年份
		for (;y < 2021; y++)
		{
			for (m = 1; m <= 12; m++)    //计算当年与21年间隔天数
			{
				sum = sum + A.day[m - 1];
			}
			if (y % 4 == 0)       
				sum++;                 //不要漏了润年
		}
		cout <<sum;
	}

	return 0;
}

Tips:结构体中所包含的数组 及其 空间开创

struct list{
int *day;        //int day[12]数组  day为其地址名
};
list A;
A.day=new int[12] //开创空间:int类型[12]

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值