C语言问题(五)

来源:百度知道 编辑:UC知道 时间:2024/06/15 12:14:16
以下程序运行后的输出结果是 4599
main()
{
int a=3,b=4,c=5,t=99;
if(b<a&&a<c) t=a;a=c;c=t;
if(a<c&&b<c) t=b;b=a;a=t;
printf("%d%d%d\n",a,b,c);
}
为什么输出结果是4599呢?

if(b<a&&a<c) t=a;a=c;c=t;
if(a<c&&b<c) t=b;b=a;a=t;
估计是对if语句所管辖的范围不清楚:加上{}后,应该能够明白:
if(b<a&&a<c) t=a;//if到此结束;
a=c;
c=t;
if(a<c&&b<c) t=b;//if到此结束;
b=a;
a=t;
另外,输出的时候没有空格,所以abc连在一起.结果为
4,5,99

复合语句要加这个{}的,不然if语言只到第一个分号的。