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

C++编程:定义一个结构体变量(包括年月日),编写程序,要求输入年、月、日,程序能计算并输出该日在本年中是第几天。主意闰年问题。一下是我编写的代码,编译时出现了问题:#i... C++编程:定义一个结构体变量(包括年月日),编写程序,要求输入年、月、日,程序能计算并输出该日在本年中是第几天。主意闰年问题。
一下是我编写的代码,编译时出现了问题:
#include <iostream>
using namespace std;
struct Date
{
int year;
int month;
int day;
};

int main()
{
Date date;
int count_day,i;
int month_day[13];
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[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
}
else
{
leap=false;
month_day[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
}
for(i=0;i<date.month;i++)
count_day=count_day+month_day[i];
cout<<"该日是本年第"<<count_day<<"天"<<endl;
return 0;
}
编译时出现的问题如下:

e:\devshop\7a01\7a01\7a01.cpp(22): error C2059: 语法错误:“{”
1>e:\devshop\7a01\7a01\7a01.cpp(22): error C2143: 语法错误 : 缺少“;”(在“{”的前面)
1>e:\devshop\7a01\7a01\7a01.cpp(22): error C2143: 语法错误 : 缺少“;”(在“}”的前面)
1>e:\devshop\7a01\7a01\7a01.cpp(24): error C2181: 没有匹配 if 的非法 else
1>e:\devshop\7a01\7a01\7a01.cpp(27): error C2059: 语法错误:“{”
1>e:\devshop\7a01\7a01\7a01.cpp(27): error C2143: 语法错误 : 缺少“;”(在“{”的前面)
1>e:\devshop\7a01\7a01\7a01.cpp(27): error C2143: 语法错误 : 缺少“;”(在“}”的前面)
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
望各位高手指点小弟给个解决办法。。。谢谢。。。
展开
 我来答
允逸0Fk
2012-06-14 · TA获得超过126个赞
知道答主
回答量:56
采纳率:0%
帮助的人:11.9万
展开全部
#include <iostream>
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<date.month;i++)
count_day=count_day+month_day[i];
cout<<"该日是本年第"<<count_day<<"天"<<endl;
return 0;
}
调试成功请查收。采纳。兄弟 多给点分,写程序的不容易呀
expectances
推荐于2017-11-28 · TA获得超过4086个赞
知道小有建树答主
回答量:921
采纳率:50%
帮助的人:766万
展开全部
错在数组的赋值方式。
你可以在定义的时候直接赋值
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月份的天数即可。
另外,整型数组,没必要多定义一个吧,固定十二个月又不用扩展。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wenku_a
2012-06-12 · TA获得超过125个赞
知道小有建树答主
回答量:118
采纳率:0%
帮助的人:112万
展开全部
#include <iostream>
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<date.month;i++)
count_day=count_day+month_day[i];
cout<<"该日是本年第"<<count_day<<"天"<<endl;
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式