闰年判断的四种写法
第一种写法
思想: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;
}