请编写函数,求从公元 y 1 年开始到公元 y 2 年之间经过的闰年总数 n。 按照现行历法(格里高利历):四年一闰,百年不闰,四百年再闰。即:年数是 4 的倍数且不是 100 的倍数,或者年数是 400 的倍数,则为闰年,否则为平年。c语言
时间: 2024-09-25 14:11:54 浏览: 36
3000年万年历模块.rar
可以创建一个名为`count_leap_years`的函数,用于计算从公元y1到y2之间的闰年数量。以下是一个简单的C语言实现:
```c
#include <stdio.h>
int is_leap_year(int year) {
// 判断是否为闰年的条件
if (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)) {
return 1; // 是闰年,返回1
} else {
return 0; // 否则,返回0
}
}
int count_leap_years(int start_year, int end_year) {
int count = 0;
for (int year = start_year; year <= end_year; year++) {
count += is_leap_year(year);
}
return count;
}
int main() {
int y1, y2;
printf("请输入起始年份(y1): ");
scanf("%d", &y1);
printf("请输入结束年份(y2): ");
scanf("%d", &y2);
int n = count_leap_years(y1, y2);
printf("从%d到%d年间共有%d个闰年。\n", y1, y2, n);
return 0;
}
```
这个程序首先定义了一个辅助函数`is_leap_year`来检查某一年是否为闰年,然后在`count_leap_years`函数中遍历指定范围内的所有年份,并累加闰年的数量。
阅读全文