day(0~6)代表每月第一天起始位置,stop代表每月天数,每天之间空两个空格。输入不同的day和stop,输出每月日历的样子。假设day为2,stop为31,则输出样式为
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int i,day,stop;
cout<<"Please input day and stop:"<<endl;
cin>>day>>stop;
cout<<" Sun Mon Tue Wed Thu Fri Sat"<<endl;
cout<<setw(6*day)<<" ";
for(i=1;i<=7-day;i++)
{
if(i!=7-day)
cout<<setw(6)<<i;
else
cout<<setw(6)<<i<<endl;
}
for(i=8-day;i<=stop;i++)
{
if(i%7!=7-day)
cout<<setw(6)<<i;
else
cout<<setw(6)<<i<<endl;
}
cout<<setw(6)<<endl;
return 0;
}
添加头文件<iomanip>,代码里面通过setw设置宽度,使得数与数之间对齐。
利用for循环先将7-day及以下的数右对齐输出,再将8-day——stop的数输出;使用iomanip和setw设置域宽,输出结果。
输出结果: