请问为什么这个答案是2 0 0

img

按着程序一个个走,c=3>0,所以第一个if语句会运行,s=a+b=2,后面的都是同样的道理,因为他们不符合if的条件就不执行,所以w=t=0

s=2是因为a+b=2;
w=0和t=0是因为下面的赋值都没执行

img

img

int a,b,c;
int s,w,t;
s = w = t = 0;
a = -1;b = 3; c = 3;
if (c > 0) {    // true
    s = a + b;  // s = 2;
}
if (a <= 0) {   // true
    if (b > 0)  // true
        if (c <= 0) // false
            w = a -b;   // 不会执行
} else {    // false 不会执行
    if (c > 0) w = a - b;
    else t = c;
}
// 故,只有 s = 2, w,t 均是原始值 0