c语言实现两数交换

来源:互联网 发布:js tr td 编辑:程序博客网 时间:2024/05/19 17:58

借助第三变量来交换

  • 1、
    int a = 10;    int b = 20;    int temp = a;    a = b;    b = temp;
  • 2、(指针实现)
void swap(int*x, int*y){    int temp = *x;    *x = *y;    *y = temp;}

在调用swap()时注意传参时传的是&a,和&b

swap(&a, &b);

不创建第三变量交换

1、按位异或

    a = a^b;    b = a^b;    a = a^b;

例如:
a=10—— 1010
b=5——–0101
那么(a^b )^b=1111^0101=1010 就是a 的值
同理(a^b)^b(这里b已经是a了) 为1111^1010=0101

和与差方法

    a = a + b;    b = a - b;    a = a - b;

原创粉丝点击