这是一个给你主函数然后让你把其他函数填出的题。
#include <stdio.h>
int leap_year(int n);
/*声明判断闰年函数*/
int main()
{
int i;
int cnt; /*计数,用于每行满8个换行*/
int m,n;
scanf("%d %d",&m,&n); /*输入年份*/
cnt=0; /*初始化*/
for(i=m;i<=n;i++) /*遍历m到n的每一年*/
{
if(leap_year(i)) /*判断i年是不是闰年*/
{
printf("%d",i); /*输出闰年*/
cnt++; /*计数+1*/
if(cnt==8) /*够8个换行,cnt清0*/
{
printf("\n");
cnt=0;
}
else
{
printf(" ");
}
}
}
return 0;
}
填入的函数
int leap_year(int n)
{
if(n%4==0&n%100!=0)
return n=1;
else if(n%400==0)
return n=1;
else
return n=0;
}
该题最大的盲点在于if的条件,我在改进了很久之后输出的还是从m到n,之后我又仔细查看了主函数本身,if中的条件没给出,也就是说这是一个真假类型,当把i赋值给n之后(i肯定大于0)无论如何输出n,都会为真。发现了这点,我将n在返回时赋值上了1或0,结果确实是正确的。