输入某一年,打印当年12个月的日历,格式参照正常日历 用C语言实现
时间: 2024-12-06 20:26:26 浏览: 11
在C语言中实现打印指定年份12个月的日历,可以使用`stdio.h`库来输出文本,以及包含月份天数信息的数组。这里是一个简单的示例,假设我们仅考虑公历:
```c
#include <stdio.h>
// 数组存储每个月的天数,0 表示非闰年二月28天,1表示闰年2月29天
int days_in_month[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
void print_calendar(int year) {
int month;
printf("%4d\n", year); // 输出年份
for (month = 1; month <= 12; ++month) {
if (month == 2 && is_leap_year(year)) {
days_in_month[1] = 29; // 设置闰年的2月有29天
}
// 打印月份和日期列头
printf("%2d ", month);
for (int day = 1; day <= days_in_month[month - 1]; ++day) {
printf("%2d ", day);
}
printf("\n");
}
}
// 判断是否为闰年
int is_leap_year(int year) {
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
int main() {
int year;
printf("请输入年份: ");
scanf("%d", &year);
// 检查输入是否有效
if (year <= 0) {
printf("请输入有效的年份。\n");
return 1;
}
print_calendar(year);
return 0;
}
```
阅读全文