练习专区

今天的一小步就是明天的一大步
Problem 1650 打印月历
Accepted: 0   Total Submit: 2
Time Limit: 1000ms   Memory Limit: 30720KB
Description
定义一个月份类Month,包含年year,月month,星期weekDay,year表示该月份对象是某年,month表示是某月,weekday表示该年的第一天是星期几。 程序首先给你某年的1月1日是一星期中的第几天,格式为year weekday。比如输入2014 3 表示2014年的1月1日为星期3。 要求你按照月历的格式使用Month中的print()函数来完成将这一年中的任何一个月份的月历打印出来。 在打印日期时需要判断这个月的每一天是星期几,同时还要注意这个月有多少天(2月的天数与该年是否为闰年有关)。因此,可能需要你再增加某些函数完成这些功能。 可使用下面的main函数: void main() { int year; //年 int weekday; //该年第1天是星期weekday(0表示星期天,1-6表示星期一到星期六) int n; //需要输出n个月的月历 int month; //需要打印月历的月份 Month *tm = NULL; while(cin>>year>>weekday) { cin>>n; for(i = 0;i < n;i++) { cin>>month; tm = new Month(year,month,weekday); tm->print(); } } }
Input
输入有多组。每组第一行是个年份year以及该年第一天(1月1日)是星期几(0-6分别表示星期日到星期六)。//说明:2014 3表示2014年的第一天是星期三。 随后一行是个正整数N表示接下来要输出N个月的月历。 随后N个介于1-12间的正整数表示月份month。
Output
对每一个月份输出该月的月历。输出格式见范例:首行输出星期几,每个之间用一个空格分隔,下面的日期输出在对应位置,左对齐,占7个位置。
Sample Input
2014 3
1
1
Sample Output
2014年1月
星期一 星期二 星期三 星期四 星期五 星期六 星期日
              1      2      3      4      5     
6      7      8      9      10     11     12    
13     14     15     16     17     18     19    
20     21     22     23     24     25     26    
27     28     29     30     31     
Hint
提交     返回