一道软件笔试题
打印某月的月历,从键盘读入两个整数m和w, 分别表示某月及该月1日是星期几,清按如下格式打印月历
十一月月历
日 一 二 三 四 五 六
1 2 3 4
5 6 7 8 9 10 11
12 13。。。。。。。。
。。。。。。。。。。
。。。。。。30
注意,可以不考虑闰年的情况,打印格式保证对其。另外注意考虑输入异常情况。
[解决办法]
没考虑闰年问题。
voidShowCalender(int month, int weekday){ assert(month>=1 && month <=12 && weekday>=1 && weekday<=7); const int Day[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; int line = 0; int gap = weekday%7; printf("%d month\n", month); printf("Sun Mon Tue Wed Thu Fri Sat\n"); for (int i=0; i<gap; i++) { printf(" "); } for (int i=1; i<Day[month]; i++) { printf("%-3d ", i); if ((i+gap)/7 > line) { printf("\n"); line = (i+gap)/7; } }}