C++编程:定义一个结构体变量(包括年月日),编写程序,要求输入年、月、日,程序能计算并输出该日在本年中

2024-12-05 15:23:45
推荐回答(3个)
回答(1):

#include
using namespace std;
struct Date
{
int year;
int month;
int day;
};

int main()
{
Date date;
int count_day,i;
int month_day[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
bool leap;
cout<<"输入年:";
cin>>date.year;
cout<<"输入月";
cin>>date.month;
cout<<"输入日";
cin>>date.day;
count_day=date.day;
if ((date.year%4==0 && date.year%100!=0) || (date.year%400==0))
{
leap=true;
}
else
{
leap=false;
month_day[2]=28;
}
for(i=0;i count_day=count_day+month_day[i];
cout<<"该日是本年第"< return 0;
}
调试成功请查收。采纳。兄弟 多给点分,写程序的不容易呀

回答(2):

错在数组的赋值方式。
你可以在定义的时候直接赋值
int month_day[13] = {0,31,29,31,30,31,30,31,31,30,31,30,31};
这种方式是对的。
但是,如果定义的时候没有赋值,后面赋值的时候
month_day[13] = {0,31,29,31,30,31,30,31,31,30,31,30,31};
这种方式是错的。此时,需要挨个元素赋值。

一楼的修改挺好,闰年与否只有第二个月有差别,只修改2月份的天数即可。
另外,整型数组,没必要多定义一个吧,固定十二个月又不用扩展。

回答(3):

#include
using namespace std;
struct Date
{
int year;
int month;
int day;
};

int main()
{
Date date;
int count_day,i;
int month_day[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
bool leap;
cout<<"输入年月日:";
cin>>date.year>>date.month>>date.day;
count_day=date.day;
if ((date.year%4==0 && date.year%100!=0) || (date.year%400==0))
{
leap=true;
month_day[2]=29;
}
else
{
leap=false;
}
for(i=0;i count_day=count_day+month_day[i];
cout<<"该日是本年第"< return 0;
}