全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:946
推到 Plurk!
推到 Facebook!

請問如何不透過第三變數將二數交換

尚未結案
kuong
一般會員


發表:2
回覆:0
積分:0
註冊:2004-10-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-10-18 01:26:43 IP:61.67.xxx.xxx 未訂閱
請問二個數比較大小 有沒有什麼指令可以直接使二個數互換 而不用用到 if(a>b) c=a a=b b=c
nlj859
資深會員


發表:139
回覆:375
積分:322
註冊:2004-03-20

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-10-18 02:15:30 IP:219.80.xxx.xxx 未訂閱
Hello kuong,    請參考:
ex:
#include 
int a,b;
a=3;
b=5;
swap(a,b);
ShowMessage(a);
ddy
站務副站長


發表:262
回覆:2105
積分:1169
註冊:2002-07-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-10-18 10:05:47 IP:202.145.xxx.xxx 未訂閱
例: 交換a,b a = a + b, b = a - b, a = a - b 若要參考更詳細的討論請參考此篇 http://delphi.ktop.com.tw/topic.php?topic_id=41049    
richtop
資深會員


發表:122
回覆:646
積分:468
註冊:2003-06-10

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-10-18 12:25:53 IP:140.129.xxx.xxx 未訂閱
ddy 您好:    一直以為兩數交換一定要靠"第三者",想不有此妙招,值得拍手喝采!!< > 不過這"第三者"似乎無法擺脫,仍有存在的必要。< > 因為如果數值太大時,a=a b;恐有溢位之虞。 總之,這是個漂亮的用法!
ddy
站務副站長


發表:262
回覆:2105
積分:1169
註冊:2002-07-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-10-18 12:56:03 IP:202.145.xxx.xxx 未訂閱
richtop 兄,這個不值得拍手喝采啦~ 程式設計裡諸如此類的花俏的寫法可多了,終究是中看不中用 兼具可讀性與效率的寫法才是正統的做法 大概只有"考試"時會出現這樣的問題吧(這個也是數學應用在程式裡的例子) < src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=8147403&CC=182217">
shpeng
初階會員


發表:6
回覆:67
積分:49
註冊:2002-12-21

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-10-18 13:40:44 IP:220.130.xxx.xxx 未訂閱
還有這招 A := A XOR B; B := A XOR B; A := A XOR B; 沒有溢位問題 缺點 以後維護還要解釋 不然看不懂 ==取之於斯,用之於斯==
------
==取之於斯,用之於斯==
richtop
資深會員


發表:122
回覆:646
積分:468
註冊:2003-06-10

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-10-18 18:00:26 IP:211.76.xxx.xxx 未訂閱
shpeng 您好:    不好意思!趁 kuong 還沒上來,哈啦一下! 再給 > 的確沒了溢位的問題!不過找個碴,如果該程式語言沒有提供逐位元( >< >
shpeng
初階會員


發表:6
回覆:67
積分:49
註冊:2002-12-21

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-10-20 14:40:58 IP:220.130.xxx.xxx 未訂閱
過獎了 只是將以前所學數位電子的觀念帶入 過去前輩的繪圖十字標也都是用這招,只是稍微轉換一下 所以多研究前輩的[觀念]是很有用的 ==取之於斯,用之於斯==
------
==取之於斯,用之於斯==
系統時間:2024-06-29 15:36:20
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!