判断任意年份是否为闰年,需要满足以下条件中的任意一个:
① 该年份能被 4 整除同时不能被 100 整除;
② 该年份能被400整除。
#include <stdio.h>
int main()
{
int a;
scanf("%d",&a);
if(a%100==0)//判断是否被100整除,如果可以则是闰年,并不执行下else
printf("不是闰年.\n");
else if(a%4==0)//如果不被100整除,则继续判断是否被4整除,如果可以则是闰年
{
printf("%d",a);
printf("是闰年\n");
}
else if(a%400==0)//如果不被100整除,则继续判断是否被400整除,如果可以则是闰年
{
printf("%d",a);
printf("是闰年\n");
}
else//如果不被100整除,且上面两个判断也不成立则此年不是闰年
{
printf("%d",a);
printf("不是闰年.\n");
}
return 0;
}
还有一个思路更清楚代码
#include <stdio.h>
int main()
{
int a;//a代表年份
printf("请输入一个年份\n");
scanf("%d",&a);
if(a%4==0)
{
if(a%100==0)//可以被4整除的再判断是否被100整除(非整百年能被4整除的为闰年)
{
if(a%400==0) //能被400整除的是闰年
{
printf("%d",a);
printf("是闰年\n");
}
else
{
printf("%d",a);
printf("不是闰年\n");
}
}
else//判断不能被100整除的年份
{
printf("%d",a);
printf("是闰年\n");
}
}
else//不能被4整除的年份
{
printf("%d",a);
printf("不是闰年\n");
}
return 0;
}
上面这么多判断是可以写在一起的,减少代码数量和冗余
#include <stdio.h>
int main()
{
int y = 0;
printf("输入年份,例:2021\n");
scanf("%d",&y);
if(y%4==0&&y%100!=0||y%400==0)
{
printf("%d是闰年",y);
}
else
{
printf("%d不是闰年",y);
}
return 0;
}
学会了判断闰年,可以再来试一下延伸操作
C语言实现计算某一天是当年的第几天,并计算出一年的剩余天数
C语言万年历,C语言趣味程序
我是虎哥,大家多学习多交流