编程序实现:输入某个月份的天数以及这个月的1日的星期值(星期曰到星期六分别用0到6之间的整数表示),输出该月份的公历日历(要求用循环控制打印)。 常见问题: 如何控制某个月1日的打印位置? 答:根据该月份1日的星期值,控制在“1"之前打印相应个数的空格(建议用循环控制)。 输入格式: 输入该月份的天数以及1日的星期值,数据之问以室格分隔。 输出格式: 每项数据占4个字符宽度,右对齐。 输入样例: 312 输出样例: Sun Mon Tue Wed Thu Fri Sat 1 2 3 6 4 7 5 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31用c语言实现
时间: 2023-06-26 14:07:19 浏览: 298
py代码-例2-2-2 输入0-6的整数,把它作为星期,输入对应的星期日,一直到星期六
以下是一个简单的 C 语言程序实现,可以实现输入某个月份的天数以及这个月的1日的星期值,输出该月份的公历日历。
```c
#include <stdio.h>
int main() {
int days, weekday, i, j;
// 输入月份的天数和1日的星期值
scanf("%d %d", &days, &weekday);
// 打印星期几
printf("%4s%4s%4s%4s%4s%4s%4s\n", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat");
// 打印空格,控制1日的打印位置
for (i = 0; i < weekday; i++) {
printf("%4s", "");
}
// 打印日期
for (j = 1; j <= days; j++) {
printf("%4d", j);
weekday++;
if (weekday == 7) { // 换行
weekday = 0;
printf("\n");
}
}
// 补齐最后一行
if (weekday != 0) {
for (i = weekday; i < 7; i++) {
printf("%4s", "");
}
printf("\n");
}
return 0;
}
```
该程序中,首先输入月份的天数和1日的星期值,然后按照题目要求打印出对应的公历日历。具体实现如下:
1. 打印星期几
使用 printf 函数,按照要求打印出“Sun Mon Tue Wed Thu Fri Sat”。
```c
printf("%4s%4s%4s%4s%4s%4s%4s\n", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat");
```
2. 打印空格,控制1日的打印位置
使用 for 循环,打印出对应数量的空格,以控制1日的打印位置。
```c
for (i = 0; i < weekday; i++) {
printf("%4s", "");
}
```
3. 打印日期
使用 for 循环,从1号开始打印每一天的日期,并在每次打印后更新星期值。当星期值为6时,换行。注意,printf 函数中的 %4d 表示输出一个占4个字符宽度的整数。
```c
for (j = 1; j <= days; j++) {
printf("%4d", j);
weekday++;
if (weekday == 7) { // 换行
weekday = 0;
printf("\n");
}
}
```
4. 补齐最后一行
如果最后一行没有填满,使用 for 循环打印出对应数量的空格,以补齐最后一行。
```c
if (weekday != 0) {
for (i = weekday; i < 7; i++) {
printf("%4s", "");
}
printf("\n");
}
```
阅读全文