#include
using namespace std;
//定义日期结构体,包括年、月、日
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;
//初始化days
days=0;
//从第1个月到输入月数的前一个月累加天数
for (i=1;i
days+=day_tab[i];
}
//累加输入当月的天数
days+=date.day;
//判断闰年,如果是闰年,则多加一天
if ((date.year%4==0 && date.year%100!=0 || date.year%400==0) && date.month>=3)
{
days+=1;
}
//输出结果
cout<
return 0;
}
void main()
{
struct date{
int year;
int month[12];
int day;
}_date={0,{31,28,31,30,31,30,31,31,30,31,30,31},0};//初始化日期结构
int mon,i,days=0;
scanf("%d%d%d",&_date.year,&mon,&_date.day);//输入年月日
if((!(_date.year%4)&&_date.year%100)||!(_date.year%400))//判断是否是闰年
_date.month[1]=29;//2月增加一天
for(i=0;i
days+=_date.day;//加当月日期
printf("%d\n",days);//输出结果
}
最好分开写:我是这样写的
#include
static const int daytable [2][13] = {
{0,31,28,31,30,31,30,31,31,30,31,30,31},//平年每月天数
{0,31,29,31,30,31,30,31,31,30,31,30,31}//闰年每月天数
};
struct Date
{
int year;
int month;
int day;
};
//判断闰年
int IsLeapYear(int year)
{
if(year%4==0&&year%100!=0||year%400 == 0)
return 1;
return 0;
}
//得到天数
int GetDays(Date& date)
{
int days = date.day;
int flag = IsLeapYear(date.year);//如果是闰年则是1,平年是0
for (int i = 0;i
days += daytable[flag][i]; //根据数组下标,累加每月天数
}
return days;
}
int main ()
{
Date date;
printf("输入日期:");
scanf("%d %d %d",&date.year,&date.month,&date.day);
int days = GetDays(date);//得到天数
printf("得到天数=%d\n",days); //输出天数
return 0;
}
void main()
{
struct date{ // 定义结构体
int year; // 年份
int month[12]; // 月份数组 保存每月所拥有的天数
int day; // 日期
}_date={0,{31,28,31,30,31,30,31,31,30,31,30,31},0}; // 初始化 月份数组含义:1月31天,2月28天,以此类推
int mon,i,days=0; // 初始化局部变量:月份、循环用变量、天数
scanf("%d%d%d",&_date.year,&mon,&_date.day); // 按“年 月 日”的格式从键盘读取3个整数并分别保存
if((!(_date.year%4)&&_date.year%100)||!(_date.year%400)) // 输入的年份是闰年?
_date.month[1]=29; // 2月为29天 [end if]
for(i=0;i
days+=_date.day; // 将所输入的天数累加至总天数
printf("%d\n",days); // 打印总天数
}
好的