对比较两个数值大小的一点困惑

来源:百度知道 编辑:UC知道 时间:2024/06/06 04:20:12
#include<stdio.h>
void main()
{
float a,b,t;
scanf("%f,%f",&a,&b);
if(a>b)
{t=a; a=b; b=t;}
}
printf(%5.2f,%5.2f\n",a,b);
}
中的t=a,a=b,b=t,如何理解?我初学C语言,问题难免幼稚,望高手赐教!!

是将t作为中间变量
1、t=a 将a赋值给t 这个时候t的值是a
2、a=b 将b赋值给a 这个时候a的值已经变成了b了
3、b=t 将t赋值给b 由于刚才t的值已经变成了a了,所以这一步其实是实现将a赋值给b
最终的结论就是a,b的值互换了

由于C语言不能作到自然语言所说的AB互换 它将A赋值给B的时候 B本身会变成A的值 而原来的B值就被覆盖不见了 这个时候就由于原来的B值消失,所以就无从给A来赋值了。

T=A,A=B,B=T就是为了解决这个问题 将A的值先赋值给T,然后在B赋值给A的时候,A本身的值得以保存,再将保存了A值的T赋值给B,达到交换的目的

用中间变量t做两个数a,b的交换

C语言?
我看不懂啊~`