打印公元 m 年至 n 年间所有的闰年年份。m , n 的值都大于 0 且从键盘获取。 格式要求:每行打印 10 个年份,以空格间隔。用C语言实现
时间: 2024-10-10 19:09:22 浏览: 26
cpp代码-打印1000年至2000年之间是闰年
你可以使用以下C语言程序来实现这个功能,它会根据用户输入的起始年份m和结束年份n,打印出这两个范围内的所有闰年:
```c
#include <stdio.h>
#include <stdbool.h>
bool is_leap_year(int year) {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
return true;
}
return false;
}
void print_leap_years(int start, int end) {
int current_year = start;
while (current_year <= end) {
if (is_leap_year(current_year)) {
printf("%d ", current_year); // 打印当前年份
if (--start >= 0) { // 每打印10个数后回退一位
for (int i = 0; i < 9; i++) {
printf(" ");
}
}
}
current_year++;
if (current_year % 10 == 0) { // 每打印10行换行
printf("\n");
}
}
printf("\n"); // 结束最后一年的打印
}
int main() {
int start, end;
printf("请输入起始年份(m): ");
scanf("%d", &start);
printf("请输入结束年份(n): ");
scanf("%d", &end);
if (start > end) {
printf("起始年份必须小于等于结束年份。\n");
return 1;
}
print_leap_years(start, end);
return 0;
}
```
这个程序首先检查用户输入的有效性,然后在`print_leap_years`函数里循环遍历给定的年份范围,对于每个闰年,打印出来,并保持每10个年份一行的格式。
阅读全文