C语言上机题:找闰年

来源:百度知道 编辑:UC知道 时间:2024/05/22 05:40:28
fun功能是判断一个年份是否为闰年(闰年能被4整除但不能被100整除或能被400整除)
有几处不太懂
①flag=1的作用是什么?为什么=1?
②为什么返回flag
#include <stdio.h>
#include <conio.h>
int fun(int n)
{
int flag = 0;
if (n%4 == 0)
if (n%100!=0)
flag = 1; ←①
if (n%400==0)
flag = 1; ←①
return flag; ←②
}
main()
{
int year;
printf("Input the year:");
scanf("%d", &year);
if (fun(year))
printf("%d is a leap year.\n", year);
else
printf("%d is not a leap year.\n", year);

int flag = 0; //flag初值为0

最后判断是否为闰年,如果是,返回1,否则flag值不变,还是0

一般编程都是【非0为真】

所以如果是闰年就把1赋给flag了,函数的返回值就是1,为真

反之函数返回0,为假

flag=1主要是为返回时候用的,当是闰年的时候flag=1,fun()返回1,
if (fun(year)) 表示为真时执行,即是为1时执行,而flag=0久不执行的。

1做为标志,如果是闰年为1不是闰年为0。因为它是标志,所以你设置它为任何数都可以,只要是你明确你设置的标志代表的意义。比如你也可以设置43为闰年41为非闰年 等等等等。灵活性很高,但最好遵循一定的软件编写习惯。