| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
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);
 
 -         }
 
 - }
 
 
  复制代码 
 
 
 |   
 
 
 
 |