不使用临时变量交换两个变量值
Posted 卡洛蒙
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不使用临时变量交换两个变量值相关的知识,希望对你有一定的参考价值。
题目:不使用临时变量交换两个变量值
分析:使用加、减、乘、亦或(aba==b),四种方法分别如下:
//方法一:利用加法
int Swap3(int *x, int *y)
{
*x = *x + *y;//*x是二者和
*y = *x - *y;//*y是*x
*x = *x - *y;//*x是*y
}
//方法二:利用减法
int Swap1(int *x, int *y)
{
*x = *x - *y;//*x是二者差值
*y = *x + *y;//*x是*y
*x = *y - *x;//*y是*x
}
//方法三:利用乘法
int Swap4(int *x, int *y)
{
*x = (*x) * (*y);//*x是二者乘积
*y = *x / *y;//*y是*x
*x = *x / *y;//*x是*y
}
//方法四:利用除法
int Swap2(int *x, int *y)
{
*x = *x ^ *y;
*y = *x ^ *y;
*x = *x ^ *y;
}
//方法五:创建临时变量
int Swap5(int *x, int *y)
{
int tmp = *x;
*x = *y;
*y = tmp;
}
以上是关于不使用临时变量交换两个变量值的主要内容,如果未能解决你的问题,请参考以下文章