求C++大神帮助,我们考试要做一个小程序,程序在网上找好了,可是看不懂,帮我翻译一下大概意思。
#include<iostream>usingnamespacestd;constintmon_day[2][12]={31,28,31,30,31,30,31,31,3...
#include<iostream>
using namespacestd;
const intmon_day[2][12]={31,28,31,30,31,30,31,31,30,31,30,31,
31,29,31,30,31,30,31,31,30,31,30,31};
int IsLeap(intyear)
{
if(year%400==0 || (year%4==0 &&year%100!=0))
return 1;
else
return 0;
}
voidShowCalenDar(int y,int m)
{
if(m==0)
{
m=12,y=y-1;
}
if(m==13)
{
m=1,y=y+1;
}
int i=0,j=0,t=0,n=0;
t =y-1;
t =(1+t+t/4-t/100+t/400)%7; //t为当前年份一月一号的星期
n =IsLeap(y);
for(i=1;i<m;i++)
{
t+=mon_day[n][i-1];
t %=7;
}
if(t==0)
t = 7; //计算后的t为当前年份当前月份一号的星期
cout<<endl;
cout<<y<<"年"<<m<<"月"<<endl;
cout<<"------------------------------"<<endl;
cout<<" 一 二 三 四 五 六 日"<<endl;
for(j=1;j<t;j++)
cout<<" ";
for(j=1;j<=mon_day[n][m-1];j++)
{
printf("%4d",j);
t++;
if(t==8)
{
cout<<endl; //控制输出的整齐
t = 1;
}
}
if(t!=1)
cout<<endl;
cout<<"------------------------------"<<endl;
cout<<endl;
}
int main()
{
int year,month;
while(1)
{
cout<<"请输入年份和月份 :";
cin>>year>>month;
ShowCalenDar(year,month-1);
ShowCalenDar(year,month);
ShowCalenDar(year,month+1);
}
return 0;
} 展开
using namespacestd;
const intmon_day[2][12]={31,28,31,30,31,30,31,31,30,31,30,31,
31,29,31,30,31,30,31,31,30,31,30,31};
int IsLeap(intyear)
{
if(year%400==0 || (year%4==0 &&year%100!=0))
return 1;
else
return 0;
}
voidShowCalenDar(int y,int m)
{
if(m==0)
{
m=12,y=y-1;
}
if(m==13)
{
m=1,y=y+1;
}
int i=0,j=0,t=0,n=0;
t =y-1;
t =(1+t+t/4-t/100+t/400)%7; //t为当前年份一月一号的星期
n =IsLeap(y);
for(i=1;i<m;i++)
{
t+=mon_day[n][i-1];
t %=7;
}
if(t==0)
t = 7; //计算后的t为当前年份当前月份一号的星期
cout<<endl;
cout<<y<<"年"<<m<<"月"<<endl;
cout<<"------------------------------"<<endl;
cout<<" 一 二 三 四 五 六 日"<<endl;
for(j=1;j<t;j++)
cout<<" ";
for(j=1;j<=mon_day[n][m-1];j++)
{
printf("%4d",j);
t++;
if(t==8)
{
cout<<endl; //控制输出的整齐
t = 1;
}
}
if(t!=1)
cout<<endl;
cout<<"------------------------------"<<endl;
cout<<endl;
}
int main()
{
int year,month;
while(1)
{
cout<<"请输入年份和月份 :";
cin>>year>>month;
ShowCalenDar(year,month-1);
ShowCalenDar(year,month);
ShowCalenDar(year,month+1);
}
return 0;
} 展开
4个回答
展开全部
#include<iostream>
using namespace std;
const int mon_day[2][12]={31,28,31,30,31,30,31,31,30,31,30,31,
31,29,31,30,31,30,31,31,30,31,30,31};
//定义一个数组,数组一个为闰年每月的最大值,一个为平年每月的最大值
int IsLeap(int year)//定义个判断是否为闰年的函数
{
if(year%400==0 || (year%4==0 &&year%100!=0))
return 1; //是闰年返回1
else
return 0; //不是闰年
}
void ShowCalenDar(int y,int m) //生成日历函数
{
if(m==0) //如果输入月份为0
{
m=12,y=y-1; //使月份直接为12
}
if(m == 13) //上同如果月份输入了13
{
m=1,y=y+1;
}
int i=0,j=0,t=0,n=0;
t =y-1;
t =(1+t+t/4-t/100+t/400)%7; //t为当前年份一月一号的星期
n =IsLeap(y); //调用闰年判断函数,n=1或0
for(i=1;i<m;i++)
{
t+=mon_day[n][i-1]; //累加t和所输入的月份的天数
t %=7; //计算后的t为当前年份和每个月份一号的星期
//当i = 1时,t就是2月1号的星期
//当i = 2时,t就是3月1号的星期
}
if(t==0)
t = 7; //计算后的t为当前年份当前月份一号的星期
cout<<endl;
cout<<y<<"年"<<m<<"月"<<endl;
cout<<"------------------------------"<<endl;
cout<<" 一 二 三 四 五 六 日"<<endl;
for(j=1;j<t;j++) //控制输出每个月一号的位置
cout<<" ";
for(j=1;j<=mon_day[n][m-1];j++)
{
printf("%4d",j); //输出日历表
t++;
if(t==8)
{
cout<<endl; //控制输出的整齐,每8个数据换行一次
t = 1; //t重置为1
}
}
if(t!=1)
cout<<endl;
cout<<"------------------------------"<<endl;
cout<<endl;
}
int main() //主函数
{
int year,month;
while(1)
{
cout<<"请输入年份和月份 :";
cin>>year>>month; //输入年月 以空格隔开,或者换行隔开
ShowCalenDar(year,month-1); //显示所输入年和上个月的日历表
ShowCalenDar(year,month); //显示所输入年月的日历表
ShowCalenDar(year,month+1);
}
return 0;
}
good good study,day day up!!
using namespace std;
const int mon_day[2][12]={31,28,31,30,31,30,31,31,30,31,30,31,
31,29,31,30,31,30,31,31,30,31,30,31};
//定义一个数组,数组一个为闰年每月的最大值,一个为平年每月的最大值
int IsLeap(int year)//定义个判断是否为闰年的函数
{
if(year%400==0 || (year%4==0 &&year%100!=0))
return 1; //是闰年返回1
else
return 0; //不是闰年
}
void ShowCalenDar(int y,int m) //生成日历函数
{
if(m==0) //如果输入月份为0
{
m=12,y=y-1; //使月份直接为12
}
if(m == 13) //上同如果月份输入了13
{
m=1,y=y+1;
}
int i=0,j=0,t=0,n=0;
t =y-1;
t =(1+t+t/4-t/100+t/400)%7; //t为当前年份一月一号的星期
n =IsLeap(y); //调用闰年判断函数,n=1或0
for(i=1;i<m;i++)
{
t+=mon_day[n][i-1]; //累加t和所输入的月份的天数
t %=7; //计算后的t为当前年份和每个月份一号的星期
//当i = 1时,t就是2月1号的星期
//当i = 2时,t就是3月1号的星期
}
if(t==0)
t = 7; //计算后的t为当前年份当前月份一号的星期
cout<<endl;
cout<<y<<"年"<<m<<"月"<<endl;
cout<<"------------------------------"<<endl;
cout<<" 一 二 三 四 五 六 日"<<endl;
for(j=1;j<t;j++) //控制输出每个月一号的位置
cout<<" ";
for(j=1;j<=mon_day[n][m-1];j++)
{
printf("%4d",j); //输出日历表
t++;
if(t==8)
{
cout<<endl; //控制输出的整齐,每8个数据换行一次
t = 1; //t重置为1
}
}
if(t!=1)
cout<<endl;
cout<<"------------------------------"<<endl;
cout<<endl;
}
int main() //主函数
{
int year,month;
while(1)
{
cout<<"请输入年份和月份 :";
cin>>year>>month; //输入年月 以空格隔开,或者换行隔开
ShowCalenDar(year,month-1); //显示所输入年和上个月的日历表
ShowCalenDar(year,month); //显示所输入年月的日历表
ShowCalenDar(year,month+1);
}
return 0;
}
good good study,day day up!!
展开全部
#include<iostream>
using namespacestd;
const intmon_day[2][12]={31,28,31,30,31,30,31,31,30,31,30,31,
31,29,31,30,31,30,31,31,30,31,30,31};
int IsLeap(int year) //判断是不是闰年
{
if(year%400==0 || (year%4==0 &&year%100!=0))
return 1;
else
return 0;
}
voidShowCalenDar(int y,int m) //打印输出y年m月的日历 就和日历一样的
{
if(m==0)
{
m=12,y=y-1;
}
if(m==13)
{
m=1,y=y+1;
}
int i=0,j=0,t=0,n=0;
t =y-1;
t =(1+t+t/4-t/100+t/400)%7; //t为当前年份一月一号的星期
n =IsLeap(y);
for(i=1;i<m;i++)
{
t+=mon_day[n][i-1];
t %=7;
}
if(t==0)
t = 7; //计算后的t为当前年份当前月份一号的星期
cout<<endl;
cout<<y<<"年"<<m<<"月"<<endl;
cout<<"------------------------------"<<endl;
cout<<" 一 二 三 四 五 六 日"<<endl;
for(j=1;j<t;j++)
cout<<" ";
for(j=1;j<=mon_day[n][m-1];j++)
{
printf("%4d",j);
t++;
if(t==8)
{
cout<<endl; //控制输出的整齐
t = 1;
}
}
if(t!=1)
cout<<endl;
cout<<"------------------------------"<<endl;
cout<<endl;
}
int main()
{
int year,month;
while(1)
{
cout<<"请输入年份和月份 :";
cin>>year>>month;
ShowCalenDar(year,month-1);
ShowCalenDar(year,month);
ShowCalenDar(year,month+1);
}
return 0;
}
很简单的 你自己看看
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
注释还是挺清晰的吧?总之就是打印一个日历表,具体是某个年某个月的。
第一个函数判断是否是闰年,第二个函数从得到main函数中所传递的参数,打印日历表。就这样,没多的,请再多思考一下,还是很简单的。
第一个函数判断是否是闰年,第二个函数从得到main函数中所传递的参数,打印日历表。就这样,没多的,请再多思考一下,还是很简单的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<iostream>
using namespace std;
//二维数组,存放1年12月份的天数。但此处初始化有点问题,无论平年或闰年,2月份均为28天,需要修改
const int mon_day[2][12]={31,28,31,30,31,30,31,31,30,31,30,31,31,29,31,30,31,30,31,31,30,31,30,31};
int IsLeap(int year) //判断是否是闰年
{
if(year%400==0 || (year%4==0 &&year%100!=0))
return 1; //是闰年返回1
else return 0; //否则返回0
}
void ShowCalenDar(int y,int m)
{
if(m==0) //用户输入月份为0,则转换为12,年份减一
{
m=12,y=y-1;
}
if(m==13) //用户输入月份为13,则转换为1,年份加一
{
m=1,y=y+1;
}
int i=0,j=0,t=0,n=0;
t =y-1;
t =(1+t+t/4-t/100+t/400)%7; //t为当前年份一月一号的星期 计算公式
n =IsLeap(y); //判断是否是闰年
for(i=1;i<m;i++)
{
t+=mon_day[n][i-1]; //累加从1月到m月所有的天数
t %=7; //求与7的余数,得星期几
}
if(t==0)
t = 7; //计算后的t为当前年份当前月份一号的星期
cout<<endl;
cout<<y<<"年"<<m<<"月"<<endl;
cout<<"------------------------------"<<endl;
cout<<" 一 二 三 四 五 六 日"<<endl;
for(j=1;j<t;j++) //输出空格,直到当前星期数
cout<<" ";
for(j=1;j<=mon_day[n][m-1];j++)
{
printf("%4d",j); //控制格式
t++;
if(t==8) //到星期8换行,转换为星期1
{
cout<<endl; //控制输出的整齐
t = 1;
}
}
if(t!=1)
cout<<endl;
cout<<"------------------------------"<<endl;
cout<<endl;
}
int main()
{
int year,month;
while(1)
{
cout<<"请输入年份和月份 :";
cin>>year>>month; //读取用户输入的年份和月份
ShowCalenDar(year,month-1); //输出当前月份前1月的日历
ShowCalenDar(year,month); //输出当前月份的日历
ShowCalenDar(year,month+1); //输出当前月份后一天的日历
}
return 0;
}
using namespace std;
//二维数组,存放1年12月份的天数。但此处初始化有点问题,无论平年或闰年,2月份均为28天,需要修改
const int mon_day[2][12]={31,28,31,30,31,30,31,31,30,31,30,31,31,29,31,30,31,30,31,31,30,31,30,31};
int IsLeap(int year) //判断是否是闰年
{
if(year%400==0 || (year%4==0 &&year%100!=0))
return 1; //是闰年返回1
else return 0; //否则返回0
}
void ShowCalenDar(int y,int m)
{
if(m==0) //用户输入月份为0,则转换为12,年份减一
{
m=12,y=y-1;
}
if(m==13) //用户输入月份为13,则转换为1,年份加一
{
m=1,y=y+1;
}
int i=0,j=0,t=0,n=0;
t =y-1;
t =(1+t+t/4-t/100+t/400)%7; //t为当前年份一月一号的星期 计算公式
n =IsLeap(y); //判断是否是闰年
for(i=1;i<m;i++)
{
t+=mon_day[n][i-1]; //累加从1月到m月所有的天数
t %=7; //求与7的余数,得星期几
}
if(t==0)
t = 7; //计算后的t为当前年份当前月份一号的星期
cout<<endl;
cout<<y<<"年"<<m<<"月"<<endl;
cout<<"------------------------------"<<endl;
cout<<" 一 二 三 四 五 六 日"<<endl;
for(j=1;j<t;j++) //输出空格,直到当前星期数
cout<<" ";
for(j=1;j<=mon_day[n][m-1];j++)
{
printf("%4d",j); //控制格式
t++;
if(t==8) //到星期8换行,转换为星期1
{
cout<<endl; //控制输出的整齐
t = 1;
}
}
if(t!=1)
cout<<endl;
cout<<"------------------------------"<<endl;
cout<<endl;
}
int main()
{
int year,month;
while(1)
{
cout<<"请输入年份和月份 :";
cin>>year>>month; //读取用户输入的年份和月份
ShowCalenDar(year,month-1); //输出当前月份前1月的日历
ShowCalenDar(year,month); //输出当前月份的日历
ShowCalenDar(year,month+1); //输出当前月份后一天的日历
}
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询