用C语言打印的月历从星期一到星期日输出怎么实现
时间: 2024-03-23 21:42:43 浏览: 96
要实现从星期一到星期日输出月历,可以在输出月历之前先输出星期一到星期日的标题。以下是一个简单的实现代码,仅供参考:
```c
#include <stdio.h>
// 打印某年某月的月历,从星期一到星期日输出
void print_calendar(int year, int month) {
int day, week, days_in_month;
int i;
// 计算当月天数
if (month == 2) {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
days_in_month = 29; // 闰年2月29天
} else {
days_in_month = 28; // 平年2月28天
}
} else if (month == 4 || month == 6 || month == 9 || month == 11) {
days_in_month = 30; // 小月30天
} else {
days_in_month = 31; // 大月31天
}
// 计算当月1号是星期几
day = 1;
week = 1;
while (week <= 7) {
if (week == 1) {
printf("一 ");
} else if (week == 2) {
printf("二 ");
} else if (week == 3) {
printf("三 ");
} else if (week == 4) {
printf("四 ");
} else if (week == 5) {
printf("五 ");
} else if (week == 6) {
printf("六 ");
} else {
printf("日 ");
}
week++;
}
printf("\n");
// 计算当月的每一天
day = 1;
week = 1;
while (day <= days_in_month) {
if (week == 1) {
printf("%2d ", day); // 如果是星期一,需要换行
} else {
printf("%2d ", day);
}
day++;
week++;
if (week > 7) {
printf("\n");
week = 1; // 如果是星期天,需要换行
}
}
printf("\n");
}
int main() {
int year, month;
printf("请输入年份和月份(用空格隔开):");
scanf("%d %d", &year, &month);
printf("%d年%d月的月历如下所示:\n", year, month);
print_calendar(year, month);
return 0;
}
```
注意,上述代码中只是简单地使用了条件语句输出了星期一到星期日的标题,实际上可以使用更优雅的方式实现,例如使用数组、循环等。
阅读全文