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

来自:    更新日期:早些时候
C语言问题if语句嵌套~

配对情况如下:

图中黑线表示配对情况,红线表示条件满足时执行的,或else时执行的语句。
配对的规律是:从上往下找第一个else,它与前面未配过对的if配成一对;如此这般,直到结束。

if(x>=0)
{
if(x<10)
{Y=(double)sin((double)x);printf("Y=%f",Y);}
else if(x<20)
{
}
esle if(x<30)
{
}
else if(x<40)
{
}
}
里面很多我就不写了,只是要记得在if和else 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

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整除那么他就不是闰年。。。。。。
有什么问题可以追问

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

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

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


你画的线对

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
这是判断闰年的条件

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个判断嵌套。


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

相关评论:

相关主题精彩

版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

Copyright © 喜物网