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/05/03 22:57:52
int a=10,b=50,c=30; if(a>b) a=b; b=c; c=a; printf(

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类似