c语言中!((a<b)&&!c||1)值为什么是0 10

 我来答
鬼斗魔君
2012-02-09 · TA获得超过109个赞
知道答主
回答量:77
采纳率:0%
帮助的人:81.7万
展开全部
优先级问题啦,看看最外层的大括号里面,最后的进行的判断是||(可以去查优先级表),||的对象是(a<b)&&!c和1,不管左边是多少,右边是1所以结果是1,然后在有最外面的!一下,所以结果必是0
Mr_Yang2012
2012-02-09 · TA获得超过1647个赞
知道小有建树答主
回答量:392
采纳率:0%
帮助的人:492万
展开全部
这个问题涉及到运算符的优先级问题,优先级: !>&&>||
((a<b)&&!c||1)的值必为真,你的问题中(a<b)&&!c为假为真无所谓了(和a、b、c的值相当于没有关系),因为后面有个: ||1。
因此((a<b)&&!c||1)的值必为真(我们先当1处理),而!((a<b)&&!c||1)则为假,假在C语言中用0表示。所以!((a<b)&&!c||1)值是0
看看下面的程序,输出结果就是0
#include<iostream>
using namespace std;
int main(){
int a,b,c;
cout<<!((a<b)&&!c||1)<<endl;
system("pause");
return 0;}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lijiazhu111
2012-02-09
知道答主
回答量:43
采纳率:0%
帮助的人:33.9万
展开全部
将(a<b)&&!c看成一个整体x,因为后面是或1,只要x与1有一个为真则((a<b)&&!c||1)为真,又1代表真、0代表假所以((a<b)&&!c||1)为真即为1,非运算后即为假,是0.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
edwardlf
2012-02-09
知道答主
回答量:19
采纳率:0%
帮助的人:4.8万
展开全部
优先级问题,(a<b)&&!c||1中,“||”的优先级最低,所以任何数||1为1,前面再加个!,就是!1,就是0啦!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
392874127
2012-02-09
知道答主
回答量:1
采纳率:0%
帮助的人:1660
展开全部
你要给出a、b、c是什么,大家才能回答啊!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式