C语言 if语句嵌套问题(超重点+附图+高分)

Q1:①中的if 成立条件:③中的if(year%4==0)成立,并且②中if(year%100==0)成立,并且①中if(year%400==0)成立的 。 请问大神是不是?
--------------------------------------------------------------------------------------------------------------
Q2: ②中if成立的条件:③中if(year%4==0)成立下,并且②中if(year%100==0)成立,请问大神是不是?
如果是的话,为什么②中的if成立的条件下,没有leap=0,而在②中else有leap=1;

如果添加的话 leap=0应该放在哪里呢?
----------------------------------------------------------------------------------------------------------------------
Q3:③中if成立的条件:只需要③中的if(year%4==0),请问大神是不是?
为什么①中的if语句成立之后,没有leap=1;而①中的else 却有leap=0 ?

但是③中的else leap=0;也不对啊, 因为不满足③中的if(year%4==0)的else 也不一定是 leap=0啊???

------------------------------------------------------------------------------------------------------------

Q4:还有一点,我划的if else的线到底对不对呢??

Q1 是
Q2 是
为什么②中的if成立的条件下,没有leap=0,而在②中else有leap=1;
如果添加的话 leap=0应该放在哪里呢?
----》leap=0的条件应该还需要①的判断
如果添加leap=0 ①的判断就没什么意义了
Q3 是
①中的if语句成立之后,没有leap=1;而①中的else 却有leap=0
----》①中的if语句成立之后,有leap=1;
但是③中的else leap=0;也不对啊, 因为不满足③中的if(year%4==0)的else 也不一定是 leap=0啊
----》这就是一个是否的判断 只有一个条件不满足他就置否了
Q4 对
但Q4处 if判断好像不对 现在的写法是判断boolean型==true的写法
应该写是不是leap==0或leap==1
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-11
Q1:①中的if 成立条件:③中的if(year%4==0)成立,并且②中if(year%100==0)成立,并且①中if(year%400==0)成立的 。 请问大神是不是?


--------------------------------------------------------------------------------------------------------------
Q2: ②中if成立的条件:③中if(year%4==0)成立下,并且②中if(year%100==0)成立,请问大神是不是?


如果是的话,为什么②中的if成立的条件下,没有leap=0,而在②中else有leap=1;
这个程序应该是算输入的年份是不是闰年吧,能被4整除且又能不能被100整除 是闰年
能直接被400整除也是闰年,②成立的条件是在能被4整除的前提下又能被100,根据闰年的定义,如果只是能被4整除又能被100整除而不能被400整除那就不是闰年此时leap=0,如果能被4整除也能被100整除又能被400整除那就是闰年,因为定义中只要能被400整除就是闰年,所以此时leap=1

如果添加的话 leap=0应该放在哪里呢?
----------------------------------------------------------------------------------------------------------------------
Q3:③中if成立的条件:只需要③中的if(year%4==0),请问大神是不是?
是,if(year%4==0)是判断闰年的前提,只有能被4整除,才有可能是闰年
为什么①中的if语句成立之后,没有leap=1;而①中的else 却有leap=0 ?
①if成立之后有leap=1。。。。。。还是闰年的定义,①的前提是能被4整除了,也能被100整除了,此时有两种情况,就是看输入的年份是否也能被400整除,是的话leap=1,不是的话leap=0

但是③中的else leap=0;也不对啊, 因为不满足③中的if(year%4==0)的else 也不一定是 leap=0啊???
③中if是大前提,如果不能被4整除那么他就不是闰年。。。。。。
有什么问题可以追问
第2个回答  2013-10-11

首先要知道闰年的判断:四年一闰、百年不闰、四百年再闰,根据这几个条件判断就行

采用一条语句的判断就是:

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

第3个回答  2013-10-11
你画的线对
第4个回答  2013-10-11
1,是
2. 如果是的话,为什么②中的if成立的条件下,没有leap=0,而在②中else有leap=1;
②中的if成立的条件下,没有leap=0,因为假设输入的1900,是可以被4整除的,②中的if成立,但并不是闰年,所以还要判断①中的if才能确定是否是闰年
不需要添加
3:③中if成立的条件:只需要③中的if(year%4==0),请问大神是不是?.
是的,
为什么①中的if语句成立之后,没有leap=1;而①中的else 却有leap=0
①中的if有leap=1啊!!
4.你画的是对的
==================
year%4==0&&year%100!=0)||year%400==0
这是判断闰年的条件
第5个回答  2013-10-11
Q1 是的
Q2 是的
2中if 成立的条件下,进入1,如果1正确,leap=1,1不满足,leap=0,这个是在1的else中。这个都是在2成立的条件下的。
Q3 是的,1中if成立后有leap=1啊……
//((year%4==0&&year%100!=0)||year%400==0)是判断闰年的条件
//先判断是否可以被4整除,如果不可以,不是闰年,如果可以,
//继续判断,看是否可以被100整除,如果不可以,则是闰年,如1996.
//如果可以被100整除,继续判断,看是否可以被400整除,如果可以则是闰年,
//如果不可以,则不是,如1900可以被4整除,继续判断,可以被100整除,继续判断,
//不可以被400整除,则不是,2000年则是闰年。
Q4 划线时对的追问

不能被4整除的年份就不是闰年了吗? 万一要是能被400整除呢

自己来回答吧 被400整除的一定能被4整除。刚刚百度了一下。

追答

额。。。400=100×4嘛,能被400整除肯定能被4整除。
((year%4==0&&year%100!=0)||year%400==0)是判断闰年的条件
好好理解一下。
能被100整除一定能被4整除,但是也不是闰年,除了能被400整除的。所以才要3个判断嵌套。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网