北北 发表于 2012-8-12 10:45:30

北北 发表于 2012-8-12 10:53:47

玉宁417 发表于 2013-9-26 16:02:35


支持一下!加油,嘿嘿{:1_1:}

沸腾的火焰 发表于 2013-10-9 10:19:48

#include <stdio.h>
void main()
{
a:int year;
scanf("%d",&year);
if(year%4 ==0 || year%400 ==0 )
{
if(year%100 !=0)
printf("%d是闰年\n",year);
else
printf("%d是平年\n",year);
}
else
printf("%d是平年\n",year);
goto a;
}

Simanzen 发表于 2014-2-27 02:04:05

是1,闰年的判断:
1.能被4整除却不能被100整除
2. 能被400整除的年份是闰年.
只是你编码不是很规范,如果这样,你就清楚了
if(year%4==0)
{
   if(year%100==0)
   {
      if(year%400==0)
         leap=1;
   else
         leap=0;
   }   
   else
   leap=1;   //.能被4整除却不能被100整除
}
else
leap=0;
。。。

394428311 发表于 2014-2-27 16:53:01

思路:
百年必须被400整除,例如1900不是,2000是
不是百年只需被4整除

最简单的if(year % 100 == 0)
        {
                if(year % 400 == 0)
                        leap=YES;
                else
                        leap=NO;
                       
        }
        else
        {
                if(year % 4 == 0)
                        leap=YES;
                else
                        leap=NO;
        }表达式:

year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)
等价于
(year % 4 == 0 &&year % 100 != 0) || (year % 4 == 0 &&year % 400 == 0)

黄种人 发表于 2014-6-27 15:02:41

感觉这个算法太复杂了,应该先对是否能被400整除进行判断,代码会变得简单很多

qq893161525 发表于 2014-6-27 18:38:12

#include<stdio.h>
void main()
{
    int year;
   scanf("%d",year);
   if(year%4==0&&year%100!==0||year%400==0)//.能被4整除却不能被100整除或者能被400整除的年份是闰年.
   {
         printf("是闰年");
   }
   else
   {
          printf("不是闰年");
   }
}
这样理解就很容易理解的,更简洁,明了。
页: 1 [2]
查看完整版本: 闰年判别