C语言的学习问题 5

来源:百度知道 编辑:UC知道 时间:2024/06/02 12:21:23
`有以下程序,求输出结果

main()
{ int a=4,b=3,c=5,t=0;
if(a<b)t=a;a=b;b=t;
if(a<c)t=a;a=c;c=t;
printf("%d%d%d\n",a,b,c);
}

希望说得详细一点
谢谢

main()
{
int a=4,b=3,c=5,t=0;
if(a<b)//条件不成立
t=a;//if后的第一个语句不执行
a=b;//a=b=3
b=t; //b=t=0
if(a<c)//条件成立
t=a;//只执行if后的第一个语句t=a=3
a=c; //a=c=5
c=t; //c=t=3
printf("%d%d%d\n",a,b,c); //那么就是输出 503(输出格式没空格)
}

//你要是想要拍a,b,c的大小序的话,记的加括号
main()
{
int a=4,b=3,c=5,t=0;
if(a<b)
{
t=a;
a=b;
b=t;
}
if(a<c)
{
t=a;
a=c;
c=t;
}
printf("%d%d%d\n",a,b,c);
}

if(a<b)执行t=a 条件不成立 不执行 执行 a=b=3;b=t=0
if(a<c)执行t=a 条件成立 执行 t=a=3 a=c=5 c=t=3
输出 a=5 b=0 c=3

if(a<b)t=a;a=b;b=t; 如果a小于b,把a的值给t,b的给a,t的给b,结果是交换了ab的值。
同理....
printf("%d%d%d\n",a,b,c);分别 输出a,b,c的值(其中a最大,bc不确定)

5 3 4