交換兩個整數
作者:由 點點 發表于 曲藝時間:2020-10-11
兩個變數numA和numB
int
numA
=
5
;
int
numB
=
7
;
交換這兩個變數的值,使得:
numA
=
7
;
numB
=
5
交換兩個變數的值,思路有兩種。
常規思路藉助一箇中間變數temp,先將numA的值賦給temp(temp = numA),然後將numB的值賦給numA(numA = numB),最後將一開始被賦值的temp的值賦給numB(numB = temp)。
另一種方法透過加減或者異或操作,不借助中間變數交換兩個變數的值。
藉助中間變數
void
swap
(
int
&
numA
,
int
&
numB
)
{
int
temp
=
numA
;
numA
=
numB
;
numB
=
temp
;
}
不借助中間變數
#include
#include
#include
#include
#include
#include
using
namespace
std
;
void
swap1
(
int
&
numA
,
int
&
numB
)
{
numA
=
numA
+
numB
;
numB
=
numA
-
numB
;
numA
=
numA
-
numB
;
}
void
swap2
(
int
&
numA
,
int
&
numB
)
{
numA
=
numA
^
numB
;
numB
=
numA
^
numB
;
numA
=
numA
^
numB
;
}
int
main
()
{
int
numA
=
5
;
int
numB
=
7
;
cout
<<
“numA = : ”
<<
numA
<<
endl
<<
“numB = : ”
<<
numB
<<
endl
;
cout
<<
“————————————-”
<<
endl
;
swap2
(
numA
,
numB
);
cout
<<
“numA = : ”
<<
numA
<<
endl
<<
“numB = : ”
<<
numB
<<
endl
;
system
(
“pause”
);
}
輸出結果如圖所示:
圖1 交換變數方法執行結果