示例 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
另请阅读