C++ 编程:交换两个数字
示例 1:交换数字(使用临时变量)
#include <iostream>
using namespace std;
int main()
{
int a = 5, b = 10, temp;
cout << "交换前。" << endl;
cout << "a = " << a << ", b = " << b << endl;
temp = a;
a = b;
b = temp;
cout << "\n交换后。" << endl;
cout << "a = " << a << ", b = " << b << endl;
return 0;
}
输出
交换前。
a = 5, b = 10
交换后。
a = 10, b = 5
在上述示例中,进行交换操作使用了三个变量。
首先,第一个变量的内容被复制到 temp
变量中。然后,第二个变量的内容被复制到第一个变量中。
最后,temp
变量的内容被复制回第二个变量,从而完成交换过程。
你也可以使用以下方式仅用两个变量来进行交换。
示例 2:不使用临时变量交换数字
#include <iostream>
using namespace std;
int main()
{
int a = 5, b = 10;
cout << "交换前。" << endl;
cout << "a = " << a << ", b = " << b << endl;
a = a + b;
b = a - b;
a = a - b;
cout << "\n交换后。" << endl;
cout << "a = " << a << ", b = " << b << endl;
return 0;
}
此程序的输出与上面的第一个程序相同。
让我们看看这个程序是如何工作的:
- 初始时,
a = 5
和b = 10
。 - 然后,我们用代码
a = a + b
将a
和b
相加,并将结果存储在a
中,意味着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;
// 使用乘法和除法进行交换
a = a * b; // a = 50
b = a / b; // b = 5
a = a / b; // a = 10