题目描述
编写程序显示单月的日历。用户指定这个月的天数和该月起始日是星期几:
31
3
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输入
1、输入这个月的天数。
2、输入该月起始日是星期几(1=Sun,7=Stat)。输出
输出单月的日历,日与日之间间隔一个空格,上下行日期右对齐。
样例输入
31
3样例输出
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
提示
此程序不像看上去那么难。最重要的部分是一个使用变量i从1计数到n的for语句(这里n是此月的天数),for语句中需要显示i的每个值。在循环中,用if语句判定i是否是一个星期的最后一天,如果是,就显示一个换行符。
#include <stdio.h>
int main(void)
{
int days, start, i, j;
scanf("%d", &days);
scanf("%d", &start);
for (j = 1; j < start; j++)
{
printf(" ");
}
for (i = 1; i <= days; i++, j++)
{
if (j % 7)
{
printf("%2d ", i);
}
else
{
printf("%2d\n", i);
}
}
}