- 给定两个整形变量的值,将两个值的内容进行交换。
- 不允许创建临时变量,交换两个数的内容(附加题)
#include<stdio.h>
#include<stdlib.h>
//方案1(不创建临时变量)
void FangAn1(int a, int b){
a = a^b; //a等于a异或b
b = a^b; //b等于a异或b(即b等于a开始的值)
a = a^b; //a等于a异或b(即a等于b开始的值)
printf("a = %d,b = %d\n", a, b); //打印输出结果
}
//方案2(不创建临时变量)
void FangAn2(int a, int b){
a = a + b; //a等于a加b
b = a - b; //b等于a(即b等于a加b,再减b)
a = a - b; //a等于b(即a等于a加b,再减a)
printf("a = %d,b = %d\n", a, b); //打印输出结果
}
//方案3(创建临时变量)
void FangAn3(int a, int b){
int temp; //定义一个中间变量
temp = a; //将a的值赋给temp
a = b; //将b的值赋给a
b = temp; //将temp的值赋给b
printf("a = %d,b = %d\n", a, b); //打印输出结果
}
//主函数
int main(){
int a = 1; //定义一个变量a并赋值为1
int b = 2; //定义一个变量b并赋值为2
FangAn1(a, b); //调用方案1
FangAn2(a, b); //调用方案2
FangAn3(a, b); //调用方案3
system("pause");
return 0;
}
`