如何按从大到小的顺序输出两个实数

来源:百度知道 编辑:UC知道 时间:2024/09/23 11:01:39
{
t=a
a=b
b=t
}
是什么意思?
请高手指点,我是初学者。

#include <stdio.h>
void main()
{
float a,b,t; //定义2个实型变量a,b
scanf("%f%f",&a,&b); //输入2个实数
if(a<b) //如果a比b小
{ t=a;a=b;b=t;} //交换2个数的值
printf("%f,%f",a,b);//顺序输出a,b
}
变量在内存中有固定的储存空间,如果直接赋值就会把原来变量值给覆盖掉,所以要借助第三个变量来进行交换2个数的值;
t=a ;//先把a的值保存给t;
a=b;//把b的值赋值给a;
b=t;//把t里保存原先a的值赋值给b;完成交换

大小比较我就不详说了上面的很清楚了
我就说说变量ab值的互换吧 估计你这里也会有疑问的
鉴于你是初学者这样跟你解释吧
你也许会纳闷既然是a b的值相互交换 为什么不可以a=b 然后b=a 这样似乎很符合情理 但是在编程里这是错误的
我用书上的例子打个比方 每个变量的值都有一个零时存储的地方(这个不必过分追究) 就好比每瓶酒都有瓶子装着是一样的
如果你要将两瓶不同的酒对换 相互换着瓶子装 你不可能把一个瓶子里的酒倒了 然后装另一瓶酒的酒对吧 否则只有一个酒瓶的酒换了 而另一个却是空的 所以你必须借用第三个瓶子 首先把第一瓶的就放在第三个瓶子里 然后把第二瓶酒放在第一个瓶子里 最后把第三个瓶子里的酒放在第二个瓶子里 这样就完成了两瓶酒的对换
而你举的a b就相当于第一第二瓶酒 t就相当于第三个空酒瓶