代码展示
方法一:
有两桶水,我们假设叫做a桶和b桶,如何使两个桶中的水交换呢?
第⼀步:拿⼀个空桶c出来,把a桶中的水倒入空桶c,现在a桶为空,c桶中的水为a桶中的水
第⼆步:将b桶的水倒入桶,现在a桶中的水为b桶中的水,b桶为空
第三步:将c桶中的水倒入b桶,最终a桶为b桶的水,b桶为a桶中的水,完成交换
#include<iostream>
using namespace std;
int main()
{
double a, b;
cout << "请初始化a,b两个值:" <<endl;
cout << " a = ";
cin >> a;
cout << " b = ";
cin >> b;
cout << "交换a,b两个变量的值:" << endl;
double temp = a;
a = b;
b = temp;
cout << " a = " << a << endl;
cout << " b = " << b << endl;
return 0;
}
方法二:
c++的头文件中封装好了许多功能函数,其中就包括交换函数
函数swap(a,b)该函数可以交换各种数据类型例如整数、浮点数、甚至是各种容器例如vector等
#include<iostream>
using namespace std;
int main()
{
double a, b;
cout << "请初始化a,b两个值:" <<endl;
cout << " a = ";
cin >> a;
cout << " b = ";
cin >> b;
cout << "交换a,b两个变量的值:" << endl;
swap(a, b);
cout << " a = " << a << endl;
cout << " b = " << b << endl;
return 0;
}
方法三:
异或运算:仅适用于整数交换,采用位运算中的异或操作
(该方法不需要借用第三个变量即可完成对两个整数的交换)
运算规律:(1异或1等于0, 1异或0等于1,0异或0等于0。即:相同得0,相异得1)
0 ^ 0 = 0
0 ^ 1 = 1
1 ^ 1 = 0
则根据数据在计算机内以二进制存储的特点,可以推断出:
a = a ^ b;
b = a ^ b;
a = a ^ b;
举例说明:1010与1100
1010 ^ 1100 = 0110
即 a ^ b = c
0110 ^ 1010 = 1100
即 c ^ a = b
0110 ^ 1100 = 1010
即 c ^ b = a
所以上述推断解释为:
c = a ^ b;
b = c ^ a;
a = c ^ b;
#include<iostream>
using namespace std;
int main()
{
double a, b;
cout << "请初始化a,b两个值:" <<endl;
cout << " a = ";
cin >> a;
cout << " b = ";
cin >> b;
cout << "交换a,b两个变量的值:" << endl;
a = a ^ b;
b = a ^ b;
a = a ^ b;
cout << " a = " << a << endl;
cout << " b = " << b << endl;
return 0;
}
编程新手,如果你还有其他方法,可以评论,我会在之后进行练习