c语言打印月历并按照这个格式输出Sun+Mon+Tue+Wed+Thu+Fri+Sat+1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20+21+22
时间: 2023-11-18 19:06:14 浏览: 35
以下是C语言打印月历并按照指定格式输出的代码,其中引用和引用的内容被用于计算每个月的第一天是星期几和每个月的天数:
```c
#include <stdio.h>
int main() {
int year, month, firstDay, days, i;
printf("请输入年份和月份(用空格隔开):");
scanf("%d %d", &year, &month);
// 计算每个月的第一天是星期几
int sum = 0;
for (i = 1; i < year; i++) {
if ((i % 4 == 0 && i % 100 != 0) || i % 400 == 0) {
sum += 366;
} else {
sum += 365;
}
}
int leap = 0;
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
leap = 1;
}
int monthDays[12] = {31, 28 + leap, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
days = monthDays[month - 1];
firstDay = (year - 1 + (year - 1) / 4 - (year - 1) / 100 + (year - 1) / 400 + sum) % 7;
// 输出月历
printf("Sun Mon Tue Wed Thu Fri Sat ");
for (i = 0; i < firstDay; i++) {
printf(" ");
}
for (i = 1; i <= days; i++) {
printf("%-4d", i);
if ((i + firstDay) % 7 == 0) {
printf("\n");
}
}
printf("\n");
return 0;
}
```