您的位置:首页 > 编程语言 > C语言/C++

C语言小算法集锦---交换两个变量的值

2018-02-16 20:35 190 查看
c语言交换两个变量的方法:   1.通过创建临时变量的方式交换两个变量的值   2.通过求和的方式交换两个变量的值   3.通过按位异或的方式交换两个变量的值第1种方法需要引入额外的变量;第2种方法中如果要交换的两个值的数据较大,可能会导致数据溢出(不推荐该方法);第3种方法是不是显得很高大上呢
下面是在VC++6.0下测试的交换两个变量的值的三种方法的完整测式代码:
#include <stdio.h>

//通过创建临时变量的方式交换两个变量的值
void swap1(int *x, int *y){
int temp;

temp = *x;
*x = *y;
*y = temp;
}

//通过求和的方式交换两个变量的值
void swap2(int *x, int *y){
*x = *x + *y;
*y = *x - *y;
*x = *x - *y;
}

//通过按位异或的方式交换两个变量的值
void swap3(int *x, int *y){
*x = *x^*y;
*y = *y^*x;
*x = *x^*y;
}

int main(void)
{
int a = 2;
int b = 5;

printf("请输入a b的值:");
scanf("%d %d", &a, &b);

swap3(&a, &b);

printf("交换后的数据为:");
printf("a = %d,b = %d\n",a,b);

return 0;
}
下面通过一个实例简要分析按位异或的方式交换两个变量的值的方式的运行机制:/*
5: 0101
8: 1000
--------
*x:1101
8: 1000
--------
*y:0101 --5
*x:1101
--------
*x:1000 --8
*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息