题解 | 编写函数实现两数交换(指针方式)
#include <iostream>
using namespace std;
// write your code here......
void swap(int *a , int *b)
{
*a = *a + *b;
*b = *a - *b;
*a = *a - *b;
}
int main() {
int m, n;
cin >> m;
cin >> n;
// write your code here......
swap(&m, &n);
cout << m << " " << n << endl;
return 0;
}
大致思路:
交换两个变量的值,同时不使用第三个变量。假设a = 3 , b = 2;
a = a + b; //此时 a = 3 + 2 = 5
b = a - b; //此时 b = a + b - b,所以b = a = 3
a = a - b; //次数 a = a + b - a,所以a = b = 2
查看10道真题和解析