求助高人(翻译语句):定义一个结构体变量(包括年月日)。输入你的生日,计算该日是本年中的第几天

#include<stdio.h>voidmain(){structdate{intyear;intmonth[12];intday;}_date={0,{31,28,3... #include<stdio.h>
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;
for(i=0;i<mon-1;i++)
days+=_date.month[i];
days+=_date.day;
printf("%d\n",days);
}

这是在网上找到的一个看起来比较简单的一个,希望高人们帮我把这些语句翻译一下~~~~~~
展开
 我来答
牛顿一餐一顿牛
推荐于2016-08-18 · TA获得超过638个赞
知道小有建树答主
回答量:287
采纳率:0%
帮助的人:216万
展开全部
#include <iostream>
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<date.month;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<<date.month<<"/"<<date.day<<" is the "<<days
<<"th day in "<<date.year<<"."<<endl;

return 0;
}
x68251
2011-07-05 · TA获得超过602个赞
知道小有建树答主
回答量:470
采纳率:0%
帮助的人:273万
展开全部
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<mon-1;i++)//循环到当月之前的一个月
days+=_date.month[i];//累加整月的天数
days+=_date.day;//加当月日期
printf("%d\n",days);//输出结果
}
最好分开写:我是这样写的
#include <stdio.h>
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<date.month;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;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Mahoroshi
2011-07-05 · TA获得超过911个赞
知道小有建树答主
回答量:614
采纳率:0%
帮助的人:685万
展开全部
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<mon-1;i++) // 循环至所输入的月份
days+=_date.month[i]; // 累计计算所输入月之前的总天数 [end for]
days+=_date.day; // 将所输入的天数累加至总天数
printf("%d\n",days); // 打印总天数
}
追问
你做的有一个错啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sun80506393
2011-07-05 · TA获得超过102个赞
知道答主
回答量:286
采纳率:0%
帮助的人:172万
展开全部
好的
更多追问追答
追问
帮忙翻译下~谢谢~~~
老师要提问一些细节
追答
你可以下个软件翻一下!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式