|
发表于 2012-2-6 14:42:14
|
显示全部楼层
#include <stdio.h>
void main()
{
int year,leap;
printf("input a year ");
scanf("%d",&year);
if(year%4==0)//第一个IF.能被4整除
if(year%100==0)//第二个IF.能被4事除也能被100整除
{
if(year%400==0)//第三个IF.能被4事除,也能被100整除,也能被400整除为闰年
leap=1;
else//这个else跟第三个IF对应,表示能被4事除,也能被100整除但不能被400整除的数为非闰年
leap=0;
}
else//这里跟第二个IF相对应,表示能被4整除但不能被100整除的数,为闰年
leap=1; //我觉得这里是0,而不1,求解答,书上说的是1,但我不解啊;
else//这里跟第一个IF相对应表示不能被4整除的数,为非闰年
leap=0;
if(leap)
printf("%d is ",year);
else
printf("%d no ",year);
printf("a leap year.\n");
}
我觉得你主要的问题在于你的代码较乱,else和IF对应不清楚.建议if和else语句,哪怕只有一句,你也加上{}.看起来容易阅读.这是好的习惯.
#include <stdio.h>
void main()
{
int year, leap;
printf("input a year ");
scanf("%d", &year);
if(0 == year%4)
{
if(0 == year%100)
{
if(0 == year%400)
{
leap = 1;
}
else
{
leap = 0;
}
}
else
{
leap = 1; }
}
else
{
leap = 0;
}
if(leap)
{
printf("%d is ", year);
}
else
{
printf("%d no ", year);
}
printf("a leap year.\n");
}
|
|