我是初学C语言,看不懂你这题(看不懂的地方我标注了一下啊)

写出下面逻辑表达式的值,设a=3,b=4,c=5
(1)a||b+c&&b-c
(2)!(a>b)&&!c||1

第二题:
因为+ -优先级高,所以这题等价于
a||(b+c)&&(b-c)
即3||9&&(-1)
而&&的优先级较高,所以有等价于
3||1
所以值为1

不明白9&&(-1)到下面就变成1了

第三题:
这题等价于
(!(a>b)) && (!c ) || 1
即 1&& 0 || 1
又等价于 0||1
所以答案为1
这里不明白的是!(a>b)=!(3>4)怎么等于1的呢(!c)怎么就是0了

真是搞不懂,跪求告知!!

首先&& 和 || 运算都是逻辑运算符。在进行逻辑运算时,如果两边的量是数值,则非零的值都被认为是真值,否则为假,真值用1来表示,假值用0来表示;如果是表达式,则如果表达式是对的,则它是真值,所以用1表示,否则用0表示。

9&&(-1)因为两边都是真值(非零数),所以又可以看做1&&1,&&的两边都是真值,所以最终值为真,即结果为1

!(a>b)=!(3>4)因为(3>4)是错的,所以用0表示,又因为前面!,所以用1表示

(!c)因为c=5,不等于0,所以c是真值,前面加个!,就说明整体是假值,所以最后逻辑值为0

另外,扩展一下,对于这道题中的c,!!c的值应该为1。!!c=!(!c)
=(!0)=1。这也是通过上述解释得到的。来自:求助得到的回答
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-11-24
在做逻辑运算的时候除0以外的数 默认为1 0默认还是为0
所以上面的9&&(-1) 其实是1&&1 结果为1
!(3>4)为1 因为3>4为假 所以是0 然后取非 所以就为1
c=5 在逻辑运算时 认为是真 所以是1 所以!C就是假 所以是0本回答被网友采纳
第2个回答  2010-11-25
首先把优先级搞明白了,然后不为0就表示真,所以!x(其中x是一个不为0的数)就表示0了;如果X=0的话!X就表示为真了。这个挺有用,就像while(1)就可以用来表示一个死循环,当然也可以用while(x),x要不为0。等同于for(;1;)

只有为0表示假~
第3个回答  2010-11-26
在C里面初了0的数都是真的,0是假的。9&&-1等价与 真&&真 结果就是真的了。!(3>4) ---> !(0) ---> 1 。1在非就是0了。
第4个回答  2010-11-28
原因很简单!该法如下,不懂Hi我

该法一:

int max, max_row, max_col;
int min, min_row, min_col;

改为:

int max,max_row=0,max_col=0;
int min, min_row=0,min_col=0;

该法二:

if(max<data[i][j]) 改为 if(max<=data[i][j])

if(min>data[i][j]) 改为 if(min>=data[i][j])

如果对你有所帮助,请记得采纳最佳答案,谢谢!
你的串号我已经记下,采纳后我会帮你制作

相关了解……

你可能感兴趣的内容

大家正在搜

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