为什么运行结果是4 5 9

 

第一个if后面,第一个语句不执行,a=5,c=9;四个值分别为:a=5,b=4,c=9,t=9。

第二个if后面,第一个语句执行,t=4,b=5,因为if后面第一句里 t 的值已经变为4了,所以此时的 a=t;执行后的结果为a=4。

最后,输出a,b,c的结果为,a=4 ,b=5 , c=9。

望采纳。

解析如下: 

void main()
{
    int a=3,b=4,c=5,t=9;
    if(b<a&&a<c)  //b<a为假下面语句不执行
        t=a;  
    a=c;    //此时 a=c  a值为5
    c=t;    //此时 c=t  c值为9

    //各个值情况,  a=5,b=4,c=9,t=9
    if(a<c&&b<c)  // c>a 且c>b为真
        t=b;        //t=b   t值为4
    b=a;            //b=a   b值为5
    a=t;            //a=t   a值为4
    printf("%d %d %d",a,b,c);  //输出 4,5,9
}

 

把;改成,

分号惹的祸