int a=10,b=50,c=30; if(a>b) a=b; b=c; c=a; printf("a=%d b=%d c=%d\n",a,b,c);

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/24 02:53:27
int a=10,b=50,c=30; if(a>b) a=b; b=c; c=a; printf(
xQ_KP*C.8FXÂ^LV$keeps7 {w~WvT>4"]TEI̢%uIC EdXДmq8шN$Ui|nCu]Ms*"\h ȁpdipLaA Ƣ>"x%4go>ɢ>ʖ\*Ǽ'ha;9XEx~1Kh2>< [2MoȚv8鼍 ,^/R˄ąs:KQɽ1{'GZ$f*

int a=10,b=50,c=30; if(a>b) a=b; b=c; c=a; printf("a=%d b=%d c=%d\n",a,b,c);
int a=10,b=50,c=30; if(a>b) a=b; b=c; c=a; printf("a=%d b=%d c=%d\n",a,b,c);

int a=10,b=50,c=30; if(a>b) a=b; b=c; c=a; printf("a=%d b=%d c=%d\n",a,b,c);
结果应该是
a=10 b=30 c=10
因为a=b是在if的作用域内部,其他两个赋值都不是
所以a>b不成立,a=b不执行
b=c执行,b=30
c=a执行,c=10
if作用域判定是:
if有大括号的话,作用域是大括号括住的部分,没有大括号的话,作用域是if开始到第一个分号截止,while与for类似