d=a;a=b;b=d
首先,你要明确,“=”在C语言中,不是“等于”的意思,而是“赋值”!!
这很关键!
这三条语句的意思就是:把a的值赋给d,再把b的值赋给a,最后把d的值赋给b
这样一轮过后,你会发现a,b的值交换了。d就是一个中间变量。
放到程序中去理解,就是如果a>b,就把a,b交换。
b中的值最大。
为什么不直接写“a = b”呢?就是因为“=”的含义是“赋值”!!把b赋给a之后,a就是b的值,那么a的值就被覆盖掉了。
大个比方你就明白了,就想两个杯子里分别有酒和水(1号杯里有水,2号杯里有酒),如果你想用2号杯装水,1号杯装酒,你就的找到另一个杯子(我们叫3号杯)来充当一个中介,这样你才能够达成目标,我们先把1号杯里的水倒入3号杯子,之后把2号杯的酒倒入1号杯子,最后把3号杯子的水倒入2号杯子,就想d=a;(相当于把a里的东西先放到d中),a=c;(相当于把c里的东西放入a里)c=d(最后把d里的东西放回c)你应该明白了把!有什么不懂的问,希望采纳,
{d=a;a=b;b=d;} //是啥意思(思路) 为啥这样写?
d在前面定义过了,在这里做中间值用来交换a,b的值的,如果a>b,就把a,b交换一下,确保a,b是按ac)是确保a
你把实际的数放到变量ab中就知道了,{d=a;a=b;b=d;} //把a的值放到d中,b的值放到a中,最后再把d的值,实际上就是开始时a的值放到b中,于是a和b的值就交换了,现在的a,b就是开始时的b,a。
就是用到两个数的交换,d是中间变量。三个选择实现由小到大的排练。