|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <stdio.h>
void main()
{
int year,leap;
printf("please input year:");
scanf("%d",&year);
if (leap%4==0)
{
if (leap%100==0)
{
if (leap%400==0)
leap = 1;
else
leap = 0;
}
else
leap = 1;
}
else
leap = 0;
if (leap)
{
printf("%d is leap",year);
}
else
{
printf("%d is not leap",year);
}
}
这是小甲鱼的作业我试着自己按照自己的逻辑打了一遍,编译没有出错但是结果一直显示是闰年,1999都是闰年我就知道出问题了
本帖最后由 风过无痕1989 于 2020-11-2 09:21 编辑
闰年的条件是:
1、能被4整除,同时还要保证不能被100整除,比如:2016年,能被4整除,不能被100整除,还有今年,2020年也是闰年;1900年不是闰年;用一句话来概括就是:四年一闰,百年不闰
2、单独的能被400整除,比如:2000年,它就是闰年,这里也是一句话:四百年再闰
根据你的程序,修改如下:(其实2个判断条件可以合在同一个条件语句之中的)
- #include <stdio.h>
- void main()
- {
- int year, leap;
- printf("please input year:");
- scanf("%d", &year);
- if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
- {
- leap = 1;
- }
- else
- {
- leap = 0;
- }
- if (leap)
- {
- printf("%d is leap", year);
- }
- else
- {
- printf("%d is not leap", year);
- }
- }
复制代码
|
|