c语言数组输入某年某月某日,编程:输入某年某月某日,判断这一天是这一年的第几天...

本文介绍了一个C++程序,通过定义结构体和函数来处理日期输入验证及判断是否为闰年的功能。它包括输入日期检查、闰年判断算法,适用于计算机科学爱好者学习日期逻辑和编程实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

满意答案

00e27ab806e4881f8254fe7ae8741834.png

EVYloveGd

2013.03.24

00e27ab806e4881f8254fe7ae8741834.png

采纳率:46%    等级:12

已帮助:8266人

#include

using namespace std;

bool isLeapYear(int y); //声明

bool inputRight(int y, int m, int d); //声明

//定义日期结构体,包括年、月、日

struct

{

int year; //年

int month; //月

int day; //日

}date; //声明实体日期date

int main()

{

int i,days; //设输入日期在该年中为第days天

//每年12个月的天数存放在数组里,2月初始为平年

int day_tab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};

cout<

//输入年月日

cin>>date.year>>date.month>>date.day;

//判断输入是否正确,不正确则重新输入

while(!inputRight(date.year, date.month, date.day))

{

cout << "intput error!please input again:"<

cin>>date.year>>date.month>>date.day;

}

//初始化days

days=0;

//从第1个月到输入月数的前一个月累加天数

for (i=1;i

{

days+=day_tab[i];

}

//累加输入当月的天数

days+=date.day;

//判断闰年,如果是闰年,则多加一天

if (isLeapYear(date.year) && date.month>=3)

{

days+=1;

}

//输出结果

cout<

<

return 0;

}

//判断输入日期是否正确

bool inputRight(int y, int m, int d)

{

if(y<1 || m<1 || m>12 || d<1 || d>31)

{

return false;

}

if(m==4 || m==6 || m==9 || m==11)

{

if(d>30)

{

return false;

}

}

if(m==2)

{

if(isLeapYear(y))

{

if(d>29)

{

return false;

}

}

else

{

if(d>28)

{

return false;

}

}

}

return true;

}

//判断是否为闰年

bool isLeapYear(int y)

{

if(date.year%4==0 && date.year%100!=0 || date.year%400==0)

{

return true;

}

return false;

}

00分享举报

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值