示例 1: 交换数(使用临时变量)
#include <iostream> using namespace std; int main() { int a = 5, b = 10, temp; cout << "Before swapping." << endl; cout << "a = " << a << ", b = " << b << endl; temp = a; a = b; b = temp; cout << "\nAfter swapping." << endl; cout << "a = " << a << ", b = " << b << endl; return 0; }
输出
Before swapping. a = 5, b = 10 After swapping. a = 10, b = 5
为了在上面的例子中执行交换,使用了三个变量。
第一个变量的内容被复制到临时变量中。然后,将第二个变量的内容复制到第一个变量中。
最后,临时变量的内容被复制回完成交换过程的第二个变量。
您也可以仅使用以下两个变量来执行交换。
示例 2: 不使用临时变量交换数字
#include <iostream> using namespace std; int main() { int a = 5, b = 10; cout << "Before swapping." << endl; cout << "a = " << a << ", b = " << b << endl; a = a + b; b = a-b; a = a-b; cout << "\nAfter swapping." << endl; cout << "a = " << a << ", b = " << b << endl; return 0; }
这个程序的输出和上面第一个程序一样。
让我们看看这个程序是如何工作的:
最初,a = 5
和 b = 10
。
然后,我们添加 a 和 b 并将其存储在 a 中,代码为 a = a + b
.这意味着 a = 5 + 10
。所以,a = 15
现在。
然后我们使用代码b = a-b
。这意味着 b = 15-10
。所以,b = 5
现在。
同样,我们使用代码a = a-b
。这意味着 a = 15-5
。所以最后,a = 10
。
因此,数字已交换。
注意: 我们可以用乘法和除法代替加法和减法。但是,如果其中一个数字为 0,这将不起作用。
int a = 5, b = 10; // using multiplication and division for swapping a = a * b; // a = 50 b = a / b; // b = 5 a = a / b; // a = 10