编一个关于判断某一年是否为闰年,程序编出来了,不能调试,求哪位大哥指点一下。

编一个关于判断某一年是否为闰年,程序编出来了,不能调试,求哪位大哥指点一下。
程序如下:
#include<stdio.h>
void main()
{
int year,leap;
printf("please enter a year:");
scanf("%d",&year);
if(year%4!=0) leap=0;
else if(year%100!=0) leap=1;
else if(year%400!=0) leap=0;
else leap=1;
if (leap)
printf("%d is",year);
else
printf("%d is not",year);
parintf("a leap year.\n");
}

第1个回答  2010-09-29
三处需要修改的地方:
一:main()函数不是无返回值型的,你把void去掉,或者改为int

二:输写错误,最后一个语句是不是把printf,写错了?

三:不算是错误,在最后一个语句前,a leap year前,应该加一空格,这样才能显示正常,否则会显示成 1996 isa leap year.不过如果前面加空格,结果会是 1996 is a year.(我以输入1996为例).

以上三处错误修改完以后,运行正常无误.已经验证. 加油!
第2个回答  2010-09-29
我尽量尊重原来的代码,经过仔细检查,发现有一个书写错误。最后一个输出语句的输出函数printf.我只改了这个地方,其他地方都是正确的。
但我建议判断是否为闰年是有逻辑语句:
leap=(year%4==0&&tear%100!=0)||year%400==0;
#include<stdio.h>
void main()
{
int year,leap;
printf("please enter a year:");
scanf("%d",&year);
if(year%4!=0) leap=0;
else if(year%100!=0) leap=1;
else if(year%400!=0) leap=0;
else leap=1;
if (leap)
printf("%d is ",year);
else
printf("%d is not ",year);
printf("a leap year.\n"); /*把parintf改成printf*/
}
第3个回答  2010-09-28
逻辑表达要正确才能得正确结果。
可以简单写成:

int leap;
leap = (( year % 4 == 0 ) && ( year % 100 != 0 ) || ( year % 400 == 0 ));本回答被提问者和网友采纳
第4个回答  2012-07-19
这个程序书上给的就是错的,这书经常有错,你可以把那判断为闰年的一些表达式改为
if((year%4==0&&year%100!=0)||(year%400==0))
leap=1;
else
leap=0;
下面照抄即可。。。。。希望这个可以帮到你。。
你只要知道判断某年是闰年(某年可以被4整除但不能被100整除或者某年可以被400整除)。

参考资料:谭浩强(著)C++程序设计教程(清华大学出版社)

第5个回答  2010-09-29
你最后一行的printf没有写对,你检查一下;提醒一下,闰年条件少了,还有400的问题!
相似回答