闰年判断的四种写法

第一种写法

思想:if语句嵌套
如果输入的年份能够被4整除,那么将出现能够被100整除和不能够被100整除,如果能够被100整除,会出现两种情况:若能被400整除,则是闰年;若不能,则不是闰年;如果不能被100整除,该数是闰年,无需再进行是否能够被400整除的判断。
下面展示一些 代码和结果。
输入输出结果:

enter year:2000
a leap year.
#include<stdio.h>
int main()
{
	int year,leap;
	printf("enter year:");
	scanf("%d",&year);
	if(year%4==0)
	{
		if(year%100==0)
		{
			if(year%400==0)
				leap=1;
			else
				leap=0;
		}
		else
			leap=1;
	}
	else
		leap=0;
	if(leap)
		printf("%d is ",year);
	else
		printf("%d is not ",year);
	printf("a leap year.\n");
	return 0;
}

第二种写法

if ……else if ……else语句的使用,与第一种思想相同,运用的语句不同。

enter year:2000
a leap year.
#include<stdio.h>
int main()
{
	int year,leap;
	printf("enter year:");
	scanf("%d",&year);
	if(year%4!=0)
		leap=0;
	else if(year%100!=0)
		leap=1;
	else if(year%400!=0)
		leap=0;
	else 
		leap=1;
	if(leap)
		printf("%d is ",year);
	else
		printf("%d is not ",year);
	printf("a leap year.\n");
	return 0;
}

第三种写法

运用逻辑运算符 &&逻辑与、||逻辑或,一个if语句结束。

enter year:2000
a leap year.
#include<stdio.h>
int main()
{
	int year,leap;
	printf("enter year:");
	scanf("%d",&year);
	if((year%4==0&&year%100!=0)||(year%400==0))
		printf("a leap year.\n");
	else
		printf("%d is not \n",year);
		printf("a leap year.\n");
	return 0;
}
enter year:2000
a leap year.

第四种写法

运用的是条件表达式:表达式1?表达式2:表达3

#include<stdio.h>
int main()
{
	int year,leap;
	printf("enter year:");
	scanf("%d",&year);
	((year%4==0&&year%100!=0)||(year%400==0))?printf("a leap year.\n"):printf("%d is not a leap year\n",year);
	return 0;
}
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐