C语言:x+(y>!z)什么意思

 我来答
分享社会民生
高粉答主

2020-04-14 · 热爱社会生活,了解人生百态
分享社会民生
采纳数:1248 获赞数:283299

向TA提问 私信TA
展开全部

x=1。y=3。z=5。z>y条件成立返回1。返回0,所以结果是0。

!的优先级高,先计算出x+y的值,若x+y不为0,则!复(x+y)的值为0,反之为1,然后将这个值和z进行比较,如果大于制z返回1,小于z返回0。

具体的,这里是将x+y的值作为一个bool型返回了,所有不为0的数都相当于true(1),为0的数也就是false。!将表达式取反,!0==1/!1==0。

扩展资料:

C语言中所有格式化类型的定义:

1、%d/i

接受整数值并将它表示为有符号的十进制整数,i是老式写法。

2、%o

无符号8进制整数(不输出前缀0)。

3、%u

无符号10进制整数。

4、%x/X

无符号16进制整数,x对应的是abcdef,X对应的是ABCDEF(不输出前缀0x)。

5、%f(lf)

单精度浮点数和双精度浮点数用f(lf在C99开始加入标准,意思和f相同)。

6、%e/E

科学计数法表示的数,此处"e"的大小写代表在输出时用的“e”的大小写。

7、%g/G

有效位数,如:%.8g表示单精度浮点数保留8位有效数字。

warriorsat
推荐于2017-12-15 · TA获得超过676个赞
知道小有建树答主
回答量:698
采纳率:33%
帮助的人:396万
展开全部
并不复杂,考察运算符优先级。
!z代表z求非;
当z=0的时候,!z=1;当z!=0的时候,!z=0
这句话,
也就是当y大于1的时候等效于x+1;
y<0的时候等效于x;
0<y<1且z!=0等效于x+1;0<y<1且z=0等效于x;
这种问题,一个printf语句解决
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
与子如初见
2013-11-22 · TA获得超过1638个赞
知道小有建树答主
回答量:1117
采纳率:100%
帮助的人:789万
展开全部
先求!z的值,如果z是一个非零值,则!z为0,如果z为0,则!z为1,然后比较y与!z的关系,若z为非零值,则即为判断y>0是否成立,成立则y>!z的值为1,否则为0,若z为0.则即为判断y>1是否成立,成立则y>!z的值为1,否则为0,。最后用x的值加上y>!z的值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
或许有点像朋也
2013-11-22
知道答主
回答量:12
采纳率:0%
帮助的人:10.3万
展开全部
根据优先级计算,先算括号里面的y>!z,如果z!=0的话,!z就为0,z为0的话!z就为1,
然后y>(!z),判断y是否大于1或者0(之前已经提到了),大于就返回1,不大于1就返回0,最后再和x相加就行了
举个例子:x==2,y==2,z==3
得出来的就是3。
以上
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
好嘞啊啊啊啊
2013-11-22 · TA获得超过2612个赞
知道大有可为答主
回答量:1860
采纳率:66%
帮助的人:1183万
展开全部
先取z的否定
判断一是否大于z的否定
再加上x的值

!z
z的否定
当z为非0值时 !z =0
z为0时 !z =1

所以最后的值
就是x+0 或者x+1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式