c语言万年历程序代码
时间: 2024-01-04 07:19:34 浏览: 93
C语言万年历程序代码
5星 · 资源好评率100%
以下是一个使用C语言编写的万年历程序代码的示例:
```c
#include <stdio.h>
// 打印星号函数
void printStar() {
printf("**********************\n");
}
// 打印日历抬头函数
void printBegin() {
printf("日 一 二 三 四 五 六\n");
}
// 判断闰年平年函数
int isLeapYear(int year) {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
return 1; // 闰年
} else {
return 0; // 平年
}
}
// 计算总天数函数
int daySum(int year, int month) {
int days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int sum = 0;
for (int i = 0; i < month - 1; i++) {
sum += days[i];
}
if (month > 2 && isLeapYear(year)) {
sum += 1;
}
return sum;
}
// 打印日历函数
void printResult(int sum, int year, int month) {
int week = (sum + 1) % 7; // 计算当月1号是星期几
int days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if (month == 2 && isLeapYear(year)) {
days[1] = 29;
}
for (int i = 0; i < week; i++) {
printf(" "); // 打印空格
}
for (int i = 1; i <= days[month - 1]; i++) {
printf("%2d ", i); // 打印日期
if ((i + week) % 7 == 0) {
printf("\n"); // 每行打印7个日期后换行
}
}
printf("\n");
}
int main() {
int year, month;
printf("请输入年-月:");
scanf("%d-%d", &year, &month);
printBegin();
int sum = daySum(year, month);
printResult(sum, year, month);
printStar();
return 0;
}
```
阅读全文