帮帮忙,答案为什么是-4?

来源:百度知道 编辑:UC知道 时间:2024/05/31 02:38:57
#include<stdio.h>
main()
{ int n=0,m=1,x=2;
if(!n) x-=1;
if(m) x-=2;
if(x) x-=3
printf("%d\n",x)
}
执行后输出的结果是_____.

答案给的-4.帮忙解释一下

首先你要知道这个概念

int x;
if(x) { do ;}

是什么意思?

他表示的是只要x不等于0,他就会做if里面的的do

所以你的函数

if(!n) x-=1;
if(m) x-=2;
if(x) x-=3

首先n=0,所以!n就不等于0了,做第一个if语句 ,然后x-=1; 即x=x-1;x变为1;

m=1,所以做第二个if语句x-=2,即x=x-2;x变为-1;

此时x=-1不等于0,所以做第三个if语句x-=3;即x=x-3;所以最终x等于-4

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

2-1-2-3 = -4
数字只有为0时,在条件语句中为假
所以 !0 为真 -1也为真