编程:输入某年某月某日,判断这一天是这一年的第几天

2025-05-22 19:14:43
推荐回答(1个)
回答1:

#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<<"input year,month,day:"; //输入年月日 cin>>date.year>>date.month>>date.day; //判断输入是否正确,不正确则重新输入 while(!inputRight(date.year, date.month, date.day)) { cout << "intput error!please input again:"<>date.year>>date.month>>date.day; } //初始化days days=0; //从第1个月到输入月数的前一个月累加天数 for (i=1;i=3) { days+=1; } //输出结果 cout<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; }

希望采纳