用C语言判断一个年份是否为闰年(新手)

闰年判断的方法

    首先,我想大家都知道闰年的判断方法有两种:

第一种就是你所要判断的那个年份(暂且称之为year)能被4整除并且不能被100整除;

第二种就是year能直接被400整除。

下面我将用C语言进行代码编写。

用C语言进行判断

    根据上述判断方法,我们可以运用if-else分支语句将上述条件表述出来,如下:

if (i % 4 == 0 && i % 100 != 0)
{
	printf("%d年是闰年 ", i);
}
else if (i % 400 == 0)
{
	printf("%d年是闰年 ", i);
}

  很明显,上面代码块中用到了逻辑操作符&&,这个操作符的意思其实就是“和”,也就是说只有当操作符两边的条件同时满足时条件才为真,这是有同学就会问,只用if嵌套将两个条件表示出来OK不OK,也就是下面的错误情况:

if (i % 4 == 0)
{
	if (i % 100 != 0)
	{
		printf("%d年是闰年 ", i);
	}
}
else if (i % 400 == 0)
{
	printf("%d年是闰年 ", i);
}

   你可能会说,诶呀,我感觉逻辑很合理呀,可是当你仔细分析就可以发现如果你输入一个2000作为year那么根据if-else的运行规则,2000只能进入if和else if这两个条件中的一个,这时2000肯定会优先进入if语句而2000很明显不满足被100整除这一条件,这就导致2000不能进入else if语句从而判断这个年份不是不是闰年。而2000年作为一个标准的闰年,这种判断方法很明显是错误的。当然这是我们就可以把else去掉让它变成两个if语句,这时语句就正确了,如下:

if (i % 4 == 0)
{
	if (i % 100 != 0)
	{
		printf("%d年是闰年 ", i);
	}
}

  那么,我们可不可以把最开始的正确版本优化一下,把条件变到一个if的条件里而不用到else呢,这是我们就用到了另一个与&&相反的逻辑运算符“||”,也就是或者,它只要两边有一个条件为假,整个语句就是假的。如下:

if (i % 4 == 0 && i % 100 != 0 || i % 400 ==0)
{
	printf("%d年是闰年 ", i);
}

这时我们就成功将两条件合二为一了。

  OK,就到这里我想已经讲清楚了,下课!!! 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值