编写C程序,试编制输出1990~2008日历表的程序
时间: 2024-03-13 18:44:43 浏览: 64
线性表的应用-C++程序设计__谭浩强100%完整
好的,以下是一个简单的 C 代码实现,可以输出 1990 年到 2008 年的日历表:
```
#include <stdio.h>
int main()
{
int year, month, days, week, i;
for (year = 1990; year <= 2008; year++) {
printf("Year %d:\n", year);
for (month = 1; month <= 12; month++) {
printf("\n\n Month %d:\n", month);
printf(" Sun Mon Tue Wed Thu Fri Sat\n");
// 计算该月第一天是星期几
week = 0;
for (i = 1; i <= month; i++) {
if (i == 2) {
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
week += 29;
} else {
week += 28;
}
} else if (i == 4 || i == 6 || i == 9 || i == 11) {
week += 30;
} else {
week += 31;
}
}
week = (week + 1) % 7;
// 输出日历表
for (i = 0; i < week; i++) {
printf(" ");
}
days = 0;
if (month == 2) {
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
days = 29;
} else {
days = 28;
}
} else if (month == 4 || month == 6 || month == 9 || month == 11) {
days = 30;
} else {
days = 31;
}
for (i = 1; i <= days; i++) {
printf("%6d", i);
week++;
if (week == 7) {
printf("\n");
week = 0;
}
}
printf("\n");
}
}
return 0;
}
```
代码中,我们使用了两个 for 循环,分别遍历了 1990 年到 2008 年每一年的每一月。在内循环中,我们计算了每个月第一天是星期几,然后按照星期几的顺序输出日历表。需要注意的是,我们在计算闰年时,使用了简单的判断方法,即能被 4 整除但不能被 100 整除,或者能被 400 整除的年份都是闰年。虽然这种判断方法不够精确,但在这个范围内应该不会出现太大的误差。
阅读全文