这个C语程序的if语句,我不太明白
这是一个判断润年的程序。我对这里面的IF语句的执行过程不太明白!谁能给我讲讲?main(){intyear,leap;scanf("%d",&year);if(year%...
这是一个判断润年的程序。
我对这里面的IF语句的执行过程不太明白!谁能给我讲讲?
main()
{
int year,leap;
scanf("%d",&year);
if(year%4==0)
{if(year%100==0)
{if(year%400==0)
leap=1;
else leap=0;}
else
leap=1;}
else
leap=0;
if(leap)
printf("%d is ",year);
else
printf("%d is not ",year);
printf("a leap year.\n");
}
if(leap)
从第5行的if语句这里我就不太明白了,为什么if(year%100==0)的后面不用写leap=0呢?
if(leap)这个地方为什么也没有给leap值呢?那怎么判断呀?》 展开
我对这里面的IF语句的执行过程不太明白!谁能给我讲讲?
main()
{
int year,leap;
scanf("%d",&year);
if(year%4==0)
{if(year%100==0)
{if(year%400==0)
leap=1;
else leap=0;}
else
leap=1;}
else
leap=0;
if(leap)
printf("%d is ",year);
else
printf("%d is not ",year);
printf("a leap year.\n");
}
if(leap)
从第5行的if语句这里我就不太明白了,为什么if(year%100==0)的后面不用写leap=0呢?
if(leap)这个地方为什么也没有给leap值呢?那怎么判断呀?》 展开
4个回答
展开全部
if(year%100==0)的意思是year的值除以100的余数是否是0,是的话继续执行
{if(year%400==0),
否的话就执行
else
leap=1;}
if(leap)这里leap的值由前面的语句执行得出,可能是0,也可能是1,如果leap=1,则if(leap)为真,继续执行
printf("%d is ",year);
如果leap=0,则if(leap)为假,程序则执行
else
printf("%d is not ",year);
{if(year%400==0),
否的话就执行
else
leap=1;}
if(leap)这里leap的值由前面的语句执行得出,可能是0,也可能是1,如果leap=1,则if(leap)为真,继续执行
printf("%d is ",year);
如果leap=0,则if(leap)为假,程序则执行
else
printf("%d is not ",year);
展开全部
C语言里面
if(条件)
{
条件真执行的语句;
}
else
{
条件为假执行的语句;
}
你按照格式写上花括号,还不知道是怎么回事吗?
第2个问题
c语言中,变量值为0则为假,非0为真,if(leap)只要根据变量leap是否为0,就判断执行什么语句。
if(条件)
{
条件真执行的语句;
}
else
{
条件为假执行的语句;
}
你按照格式写上花括号,还不知道是怎么回事吗?
第2个问题
c语言中,变量值为0则为假,非0为真,if(leap)只要根据变量leap是否为0,就判断执行什么语句。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
判定公历闰年遵循的一般规律为: 四年一闰,百年不闰,四百年再闰.
if(year%100==0)的前提是if(year%4==0),如果if(year%100==0)不成立则表示不是世纪年,普通年能被4整除的为闰年。if(leap)中的leap值在前面的代码中已经给了1或0.
if(year%100==0)的前提是if(year%4==0),如果if(year%100==0)不成立则表示不是世纪年,普通年能被4整除的为闰年。if(leap)中的leap值在前面的代码中已经给了1或0.
参考资料: 闰年_百度百科
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我先说说这个程序的算法 要判断year是不是闰年
要判断year是不是闰年有2种方法
第一种方法 year要能被4整除,不能被100整除 是闰年
第二种方法 year能被400整除 是闰年
这里的第一个if if(year%4==0)
判断能不能被4整除 能被整除的继续判断
不能整除 leap=0 year不是闰年
第2个if if(year%100==0)
判断能不能被100整除 能被整除的继续判断
不能整除 leap=0 year不是闰年
第3个if if(year%400==0)
判断能不能被400整除 能被整除的leap=1 year是闰年
不能整除 leap=0 year不是闰年
这3个if用来得出leap的值 所以if(year%100==0)的后面不用写leap=0
整理if后变成这样
if(year%4==0)
{ if(year%100==0)
{ if(year%400==0)
leap=1;
else
leap=0;
}
else
leap=1;}
else
leap=0;
这样就容易看清楚了
第2个问题 if(leap)
在这里(leap)只是判断是0 还是非0(真)
相当于if(leap!=0)
它的作用就是 leap如果等于0就跳过if
leap如果等于1就执行if语句
要判断year是不是闰年有2种方法
第一种方法 year要能被4整除,不能被100整除 是闰年
第二种方法 year能被400整除 是闰年
这里的第一个if if(year%4==0)
判断能不能被4整除 能被整除的继续判断
不能整除 leap=0 year不是闰年
第2个if if(year%100==0)
判断能不能被100整除 能被整除的继续判断
不能整除 leap=0 year不是闰年
第3个if if(year%400==0)
判断能不能被400整除 能被整除的leap=1 year是闰年
不能整除 leap=0 year不是闰年
这3个if用来得出leap的值 所以if(year%100==0)的后面不用写leap=0
整理if后变成这样
if(year%4==0)
{ if(year%100==0)
{ if(year%400==0)
leap=1;
else
leap=0;
}
else
leap=1;}
else
leap=0;
这样就容易看清楚了
第2个问题 if(leap)
在这里(leap)只是判断是0 还是非0(真)
相当于if(leap!=0)
它的作用就是 leap如果等于0就跳过if
leap如果等于1就执行if语句
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询