
有以下程序 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);
}
程序运行后的输出结果是
请详细解释一下,谢谢(*^__^*) 展开
main()
{
int x=1, y=0;
if (!x)
y++;
else if (x==0)
if (x) y+=2;
else y+=3;
printf("%d\n", y);
}
程序运行后的输出结果是
请详细解释一下,谢谢(*^__^*) 展开
3个回答
推荐于2017-09-24 · 知道合伙人教育行家
关注

展开全部
结果是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;
}
是一样的意思
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;
}
是一样的意思
展开全部
最后输出的结果是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)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
0
第一个if不会执行,因为!x = 0 ,else if也不会执行,因为x = 1,并不等于0 。综上,y的并未改变。
第一个if不会执行,因为!x = 0 ,else if也不会执行,因为x = 1,并不等于0 。综上,y的并未改变。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询