首先列出1000-2000所有的数字
这里有两个方法,一个是用函数返回值进行判断,一个是直接在函数里面进行判断。
首先方法一:
如果函数的返回值是1,就打出这个年份,(sum++是多余的,我拿来验错的);
else return0也是多余的,因为主题没有和ch==0匹配的if,我这样写是为了观赏性。
所以方法一的代码为:
#include<stdio.h>
int leap_year(int year)
{
if ((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0))
{
return 1;
}
else
return 0;
}
int main()
{
int year = 0;
int sum = 0;
for (year = 1000; year <= 2000; year++)
{
int ch = leap_year(year);
if (ch == 1)
{
printf("%d ", year);
sum++;
}
}
printf("\n%d", sum);
return 0;
}
然后是方法二:请无视sum,sum是我拿来验错的。
void leap_year(int year,int* sum)
{
if ((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0))
{
printf("%d ", year);
*sum = *sum + 1;
}
}
#include<stdio.h>
int main()
{
int year = 0;
int sum = 0;
for (year = 1000; year <= 2000; year++)
{
leap_year(year,&sum);
}
printf("\n%d", sum);
return 0;
}