当前位置: 代码迷 >> C语言 >> 关于判断一个年份是否为闰年的题目。
  详细解决方案

关于判断一个年份是否为闰年的题目。

热度:355   发布时间:2007-09-02 00:49:59.0
关于判断一个年份是否为闰年的题目。

闰年的判断规则为:能被4整除但不能被100整除的年份(这里用&&),或者能被400整除(这里用||)
我就写了这样一个程序。
#include <stdio.h>
void main()
{
int year;
printf("请输入年份");
scanf("%d",&year);
if ((year % 4 ==0 && (year % 100 <0 && year % 100 > 0))||(year % 400 ==0))
printf("%d年是闰年\n",year);
else
printf("%d年不是闰年\n",year);
}
照理说2004年应该是闰年阿。为什么却又不是呢。

搜索更多相关的解决方案: 年份  闰年  year  

----------------解决方案--------------------------------------------------------
#include <stdio.h>
#define oooo {
#define OOOO }
#define oOoO printf
#define OoOo scanf
#define oooO int
#define oOOo main
#define OooO "%d yes"
#define OOOo "%d no"

oooO oOOo() oooo oooO Oooo=2004;((Oooo%4==0&&Oooo%100!=0)||(Oooo%400==0))?oOoO(OooO,Oooo):oOoO(OOOo,Oooo);OOOO

真不知道混乱代码是怎么出来的!怎么我写出来的这么不像?????

简直就是单纯的宏替换~~~~~~~晕哦

[此贴子已经被作者于2007-9-2 4:02:13编辑过]


----------------解决方案--------------------------------------------------------
逻辑错误

if ((year % 4 ==0) && ( year % 100 != 0) ||(year % 400 ==0))

另外,楼上比较强大......
----------------解决方案--------------------------------------------------------
以下是引用libiao5457在2007-9-2 0:49:59的发言:

闰年的判断规则为:能被4整除但不能被100整除的年份(这里用&&),或者能被400整除(这里用||)
我就写了这样一个程序。
#include <stdio.h>
void main()
{
int year;
printf("请输入年份");
scanf("%d",&year);
if ((year % 4 ==0 && (year % 100 <0 && year % 100 > 0))||(year % 400 ==0))
/* 这里应该是 if ( (year%4==0 && year%100!=0) || year%400==0 ) 不清楚楼主的小于0和大于0是什么意思 */
printf("%d年是闰年\n",year);
else
printf("%d年不是闰年\n",year);
}
照理说2004年应该是闰年阿。为什么却又不是呢。


----------------解决方案--------------------------------------------------------

以下是引用coachard在2007-9-2 2:49:19的发言:
#include <stdio.h>
#define oooo {
#define OOOO }
#define oOoO printf
#define OoOo scanf
#define oooO int
#define oOOo main
#define OooO "%d yes"
#define OOOo "%d no"

oooO oOOo() oooo oooO Oooo=2004;((Oooo%4==0&&Oooo%100!=0)||(Oooo%400==0))?oOoO(OooO,Oooo):oOoO(OOOo,Oooo);OOOO

真不知道混乱代码是怎么出来的!怎么我写出来的这么不像?????

简直就是单纯的宏替换~~~~~~~晕哦

#include <stdio.h>
main(o){main(printf(&"不是闰年\n"[((!(o%4)&& o%100)||!(o%400))<<1],printf("%d年",o),scanf("%d",&o,printf("请输入年份:\n"))));}
----------------解决方案--------------------------------------------------------

我保证不仅仅是TC能编译,任何支持C89标准的编译器都能编


----------------解决方案--------------------------------------------------------
LS强大,我又学了一招!
----------------解决方案--------------------------------------------------------
重要的部分 if(n%4==0&amp;&amp;n%100!=o||n%400==0)
----------------解决方案--------------------------------------------------------
printf("%d年%s",o,&amp;"不是闰年\n"....
----------------解决方案--------------------------------------------------------
以下是引用libiao5457在2007-9-2 0:49:59的发言:

闰年的判断规则为:能被4整除但不能被100整除的年份(这里用&&),或者能被400整除(这里用||)
我就写了这样一个程序。
#include <stdio.h>
void main()
{
int year;
printf("请输入年份");
scanf("%d",&year);
if ((year % 4 ==0 && (year % 100 <0 && year % 100 > 0))||(year % 400 ==0))
printf("%d年是闰年\n",year);
else
printf("%d年不是闰年\n",year);
}
照理说2004年应该是闰年阿。为什么却又不是呢。

哎。。是我的逻辑思维混乱了。我认为Year不能被100整除就是Year % 100 >0 && year % 100<0阿。就是不能被100整除了。我好渺小啊。~

----------------解决方案--------------------------------------------------------
  相关解决方案