编写程序显示单月的日历。用户指定这个月的天数和该月起始日是星期几: 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)。 输出 输出单月的日历,日与日之间间隔一个空格,上下行日期右对齐。C语言
时间: 2023-12-10 11:40:18 浏览: 155
以下是用C语言编写的程序,可根据用户输入的月份天数和该月的起始日是星期几来打印出这个月的日历:
```c
#include <stdio.h>
int main() {
int days, start_day, i, j;
printf("请输入这个月的天数:");
scanf("%d", &days);
printf("请输入该月起始日是星期几(1=Sun,7=Sat):");
scanf("%d", &start_day);
printf(" 日 一 二 三 四 五 六\n");
for (i = 1; i < start_day; i++) {
printf(" ");
}
for (j = 1; j <= days; j++) {
printf("%4d", j);
if ((j + start_day - 1) % 7 == 0) {
printf("\n");
}
}
printf("\n");
return 0;
}
```
程序首先要求用户输入这个月的天数和该月起始日是星期几,然后使用两个for循环来打印日历。外层循环用于打印日历的行数(通常为5或6),内层循环用于打印每一行的日期。在打印日期之前,程序使用一个for循环来打印该月的第一天之前的空格,以保证日历的对齐。在打印日期时,程序使用一个if语句来检查是否需要换行(即每7天换一行)。最后,程序打印一个空行以表示日历的结束。
阅读全文