这个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值呢?那怎么判断呀?》
展开
 我来答
百度网友0c2ee9b
2009-10-26 · TA获得超过166个赞
知道答主
回答量:96
采纳率:0%
帮助的人:76.3万
展开全部
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);
clitoriscn
2009-10-26 · TA获得超过3628个赞
知道小有建树答主
回答量:3258
采纳率:0%
帮助的人:1529万
展开全部
C语言里面
if(条件)
{
条件真执行的语句;
}
else
{
条件为假执行的语句;
}

你按照格式写上花括号,还不知道是怎么回事吗?

第2个问题
c语言中,变量值为0则为假,非0为真,if(leap)只要根据变量leap是否为0,就判断执行什么语句。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shl00017517
2009-10-26 · TA获得超过214个赞
知道答主
回答量:52
采纳率:0%
帮助的人:49.2万
展开全部
判定公历闰年遵循的一般规律为: 四年一闰,百年不闰,四百年再闰.
if(year%100==0)的前提是if(year%4==0),如果if(year%100==0)不成立则表示不是世纪年,普通年能被4整除的为闰年。if(leap)中的leap值在前面的代码中已经给了1或0.

参考资料: 闰年_百度百科

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
笑kanRS
2009-10-26 · 超过46用户采纳过TA的回答
知道小有建树答主
回答量:115
采纳率:0%
帮助的人: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语句
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式