有以下程序 main() { int x=1, y=0; if (!x) y++;

有以下程序main(){intx=1,y=0;if(!x)y++;elseif(x==0)if(x)y+=2;elsey+=3;printf("%d\n",y);}程序运... 有以下程序
main()
{
int x=1, y=0;
if (!x)
y++;
else if (x==0)
if (x) y+=2;
else y+=3;
printf("%d\n", y);
}
程序运行后的输出结果是

请详细解释一下,谢谢(*^__^*)
展开
 我来答
985967518
推荐于2017-09-24 · 知道合伙人教育行家
985967518
知道合伙人教育行家
采纳数:18027 获赞数:109908
14年本科毕业于河南理工大学,至今就读于河南理工大学攻读硕士学位,从事编程学习已有5年。

向TA提问 私信TA
展开全部
结果是0;

x=1,!x为false 所以再判断x==0也不成立故y=0
else if (x==0)
if (x) y+=2;
else y+=3;

else if (x==0)
{
if (x) y+=2;
else y+=3;
}
是一样的意思
wchyumo2011
2015-11-12 · TA获得超过2万个赞
知道大有可为答主
回答量:5810
采纳率:79%
帮助的人:3420万
展开全部

最后输出的结果是0,还原一下程序就可以看的更清楚

#include<stdio.h>
int main()
{
int x = 1, y = 0;
if (!x){
y++;
}
else if (x == 0){
if (x) {
y += 2;
}
else{
y += 3;
}
}
printf("%d\n", y);
return 0;
}

首先x=1,所以!x=0为假,所以往下执行,而x=1,所以else if的条件也不满足,所以最后y的值没有改变

else先和他最近的if配对

追问
if(!x)是什么意思?
追答
在c语言里0为假,非0为真,!x表示对x取非操作,整句相当于if(x==0)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我们必将知道
2015-11-12 · TA获得超过2171个赞
知道小有建树答主
回答量:1237
采纳率:92%
帮助的人:323万
展开全部
0
第一个if不会执行,因为!x = 0 ,else if也不会执行,因为x = 1,并不等于0 。综上,y的并未改变。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式