想求闰年,首先得了解闰年的规则:

普通闰年:公历年份是4的倍数,且不是100的倍数的,为闰年(如2004年、2020年等就是闰年)。 世纪闰年:公历年份是整百数的,必须是400的倍数才是闰年(如1900年不是闰年,2000年是闰年)。

有了闰年的判断规则,就好办了

首先就是构造main函数,将输入、输出和函数的位置写出来:
#include <stdio.h>
int main()
{
int a = 0;
scanf("%d", &a);//输入xx年
run_nian(a);//计算xx年之前的闰年的年份
printf("%d", a);//显示xx年之前的闰年
return 0;
}

接着构造闰年判定函数 run_nian:

第一步,构造一个for循环,把从零开始到输入数值递增的每一年都逐个判断一遍。

(因为这里默认是公元后,正数的年份,所以也可以加一个unsigned,无符号整形,增加可以判断的年份的范围)

int run_nian(a)
{
int x;
for (x = 0; x < a; x++)
{

}
}
}
第二步,将闰年的两个判断条件用if语句写出来,即:
if (x % 4 == 0 && x % 100 != 0)//年份为四的倍数,并且不是一百的倍数
{
printf("%-4d ", x);
}
if (x % 400 == 0)//年份为四百的倍数
{
printf("%-4d ", x);
}

输入2000,运算结果如下(未展示完全):

【C语言初级】使用函数求闰年_if语句

好了,这样基本就大功告成了,但是这样的结果还是稍微有一些不美观,可以看到每一行最后一个数字是进行了换行的,一个数字分成了两个数字。虽然可以通过拉伸窗口调整,但这并不是我们想要的。

那么可以通过增加一个打印换行的变量count去控制换行的频率:
for (x = 0; x < a; x++) 
{
if (x % 4 == 0 && x % 100 != 0)
{
printf("%-4d ", x);
count = count++;
if (count % 8 == 0)
//每打印8个闰年就换一次行,即一行八个数字
printf("\n");
}
if (x % 400 == 0)
{
printf("%-4d ", x);
count = count++;
if (count % 8 == 0)
printf("\n");
}

}

输入2000时,运行结果如下:

【C语言初级】使用函数求闰年_for循环_02

当然,你如果觉得每一行的年份过少,也可以通过改变count那一行的8那个数字来改变每行的个数。

以上就是本篇博客的全部内容啦,由于博主才疏学浅,难免会出现纰漏,希望大佬们能够不吝赐教,在评论区或者私信指正都可以,博主一定及时修正。那么大家下期再见啦~~