if(a> b){

如题所述

程序的运行结果输出“over!”换行。

1、if语句两种形式:

c语言提供了三种形式的if语句,以下列出与题相关的两种形式:

形式1
if(表达式)语句。例:if(a>b) printf("%d\n",a);

形式2
if(表达式)语句1 else 语句2。

题中代码为例: 
if(a>c)
printf("%d\n",a);
else
printf("%d\n",b);

题中的if(a>b)是if语句的“形式1”,它的执行语句是一条“If形式2”语句。

问题中的代码等同于如下代码:

2、空悬else

if-else 语句引入了一种二义性问题称为空悬else (dangling-else) 问题,这种问题出现在当if 子句多于else 子句时。问题是这些else 子句分别和哪一个if 子句匹配。例:问题中的代码。

用土话说,就是if和else太多了,它们之间要如何匹配。

在C、C++中空悬else 二义性由以下规定来解决:else 子句与最后出现的未被匹配的if 子句相匹配。

题中代码分析:

根据就近匹配原则,最后一个 else应该和if(a>c)相匹配。它做为一个整体成为if(a>b)的执行语句。

产生代码难懂的原因,是因为题中的写法不符合C编码风格建议:

总是使用复合语句括号以避免在以后修改代码时可能出现的混淆或错误。

扩展资料:

C语言 if...else if...else 语句

一个 if 语句后可跟一个可选的 else if...else 语句,这可用于测试多种条件。

当使用 if...else if...else 语句时,以下几点需要注意:

1、一个 if 后可跟零个或一个 else,else 必须在所有 else if 之后。

2、一个 if 后可跟零个或多个 else if,else if 必须在 else 之前。

3、一旦某个 else if 匹配成功,其他的 else if 或 else 将不会被测试。

参考资料:

百度百科.if语句

温馨提示:内容为网友见解,仅供参考
无其他回答

c++中 if(a>b) {(a>c) max=a; else max=c;} else{ if(b>c) max=b...
else \/\/--- 2,如果不满足上面的第一个if语句中的条件a>b,则进入else后面的大括号运行里面内容,如果满足上面if语句,这段不执行;{ if(b>c) max=b;else max=c;\/\/---PS 这最后应该还有一个"}", 每个括号里面的内容是独立的。

if(a> b, a> c)是什么意思?
1、if a>b 将a和b对换 (a是a,b中的小者)。2、if a>c 将a和c对换 (a是a,c中的小者,因此a是三者中最小者)。3、if b>c 将b和c对换 (b是b,c中的小者,也是三者中次小者)。二、实现代码如下:三、执行结果如下:3者比较就是两两比较综合处理,两两比较实现互换要通过中间变量...

有一语句:If(a>b) a=b;b=c;c=a;若a b c的值分别是4 5 6,则执行该语句...
If(a>b) a=b; b=c; c=a; a b c的值分别是4 5 6 则 a>b不成立 所以只执行后两句 b=c 则 b =6 c=a 则c = 4 所以a,b,c 为 4,6,4

if(a>b)a=b:b=c;c=a;是什么意思
首先定义abc三个整形变量,然后分别给三个变量赋值,最后用if语句比较ab大小,满足条件则把b的值传送给a,把c的值传送给b,把a的值传送给c,这样abc的值就分别为50、30、10(但此条语句好像错了,应该在设置一个空闲变量,比如x。则最后一条语句应该是:if(a>b)x=a,a=b,b=c,c=x;)仅供参...

C语言程序: if(a> b) printf("");
1、本程序输出结果是:over!。2、第一个if的理解 题目中有两个if语句,构成了双重嵌套判断条件。本题目中的第一个if为第一层判断条件。如果a>b,那么程序进入第二层判断条件,当a>c时,将执行语句printf("%d\\n",a),即输出a的值;当a<c时,将执行else后的语句printf("%d\\n",b),即输出b...

试分析下面一段代码的时间复杂度: if ( A > B ) { for ( i=0; i<...
if 当永真 里面的外循环N次,内循环接近N的平方 因此时间复杂度为O(N^3),也就是N的三次方

c语言中的 { } 大括号的使用,什么时候需要什么 ?
大括号也称花括号是程序块的分界符,大括号起的作用主要就是划分区域用的。没有规定for后面一定要加大括号,如果for循环里只有一个语句,如果有多个语句,就需要用一个大括号把他们包起来。比如:if(a>b) println("a>b");与if(a>b) { println("a>b"); },其实效果是一样的但有的时候是必须...

if(a>b) return 1; else if (a==b) return 0; else return-1;的函数功...
if(表达式2)语句2else if(表达式3)语句3...else if(表达式m)语句melse 语句 n其执行顺序为从1到m直到找到满足的表达式,执行其后面语句。所以:if(a>b) return 1; else if (a==b) return 0; else return-1;功能为判断a与b的关系,当a>b时返回1,a=b时返回0,a<b时返回-1....

C++中条件语句 if(a>b || c>d) {}
第一个条件成立,就执行了,会跳过第二个判断。请采纳。a

c语言(a>b)?(b>c?b:(a>c?c:a)):((a>c)?a:((b>c)?c:b))怎么看,求解释...
该语句现实在a,b,c三个数中,按从小到大的次序找出中间的那一个数。但当三个数中有两个或三个相等时,则有些变化。解析代码如下:if (a>b){ if (b>c)return b; \/\/ a> b > c ,返回 b.else if ( a>c)return c; \/\/ a > c => b, 返回 c else return a; \/\/ c ...

相似回答
大家正在搜