2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > c语言数组输入某年某月某日 编程:输入某年某月某日 判断这一天是这一年的第几天...

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

时间:2019-01-01 03:19:59

相关推荐

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

满意答案

EVYloveGd

.03.24

采纳率: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分享举报

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。