今天看到这样一题:
输入月份 m(1≤m≤12),按一定格式打印 2015 年第 m 月的月历。 例如,2015 年 1 月的月历打印效果如下(第一列为周日):
于是我心血来潮,写起了代码
先分析一下:
2015年1月1日是星期五,并且是闰年
于是就有了以下代码:
#include<iostream>
using namespace std;
const int dayNum[20]={-1,31,28,31,30,31,30,31,31,30,31,30,31};
int m,offset;
int main() {
cin>>m;
cout<<"S\tM\tT\tW\tT\tF\tS"<<endl;//'\t'为 Tab 制表符
offset=4;
for(int i=1;i<m;i++)
offset=(offset+dayNum[i])%7;
for(int i=0;i<offset;i++)
cout<<'\t';
for(int i=1;i<=dayNum[m];i++){
cout<<i;
if(i==dayNum[m]||(offset+i)%7== 0)
cout<<endl;
else cout<<'\t';
}
return 0;
}
有用处的可转载~