#include <stdio.h> //解法一:找中间量交换 // void exchange(int* x, int* y) // { // int tmp = 0; // tmp = *x; // *x = *y; // *y = tmp; // } //解法二:不用中间变量交换 // void exchange(int* x, int* y) // { // *x = *x + *y; // *y = *x - *y; // *x = *x - *y; // } //解法三:利用异或 void exchange(int* x, int* y) { *x = *x ^ *y; *y = *x ^ *y; *x = *x ^ *y; } void print(int x, int y) { printf("a=%d,b=%d", x, y); } int main() { int a = 0; int b = 0; //输入 scanf("a=%d,b=%d", &a, &b); //交换 exchange(&a, &b); //输出 print(a, b); return 0; }