【菜鸟问题】刚学C请多帮忙,写清楚了

来源:百度知道 编辑:UC知道 时间:2024/06/06 08:56:54
下面程序的执行结果

main()
{
int a=10,b=50,c=30;
if(a>b)
a=b;
b=c;
c=a;
printf("a=%d,b=%d,c=%d,"a,b,c);
}
结果是多少?
如果在a=b;到c=a;外面加了括号,是不是结果就不同了,我这没tc不方便使用,很简单的题,帮忙回答

现在结果 10 30 10
因为if(a>b) 为假,a=b; 不执行。b=c;c=a; 后a=10 b=30 c=10

在a=b;到c=a;外面加括号后
if(a>b) {a=b; b=c; c=a; }条件为假,都不执行,所以输出为a b c的原值
10 50 30

a=10,b=30,c=10

if 只能管到他后面的一条语句 在你的这个程序里就是a=b; 你看到了那里有个分号 就到这里为止了
要你想 把3个语句都管到的话 就用花括号把他们括起来
{
a=b;
b=c;
c=a;
}

10 30 10 ,加了括号答案当然不一样,加了括号的话,这3句就绑定了,要么一起执行,要么都不执行,因为现在没有括号,所以不管if条件怎么样,后面两句都会执行的

结果是10 30 10
如果加了括号,结果为10 50 30