方法如下  a=a+b;
             b=a-b;
             a=b;还有那些方法 来晒晒

解决方案 »

  1.   

    这么写代码的是脑子有病吧。大多数编程语言都可以直接交换变量:
    a, b = b, a
      

  2.   

    http://blog.csdn.net/hudie1234567/archive/2010/09/14/5884597.aspx
    楼主可以看看,这个是我去年看到这样的问题的时候写的一点东东!
      

  3.   

     a = a ^ b;
     b = b ^ a;
     a = a ^ b; 或:
    a=a+b;
    b=a-b;
    a=a-b
      

  4.   

    估计是楼主笔记做错了
    应该是 a=a+b
          b=a-b
          a=a-b
      

  5.   

    Sorry  最后一行代码打错了  应该是 a=a-b    非常sorry
      

  6.   


    LZ最后一句 貌似笔误了应该是a = a - b;
      

  7.   

    a = a ^ b;
    b = b ^ a;
    a = a ^ b; 
    这个不懂
    a=a+b;
    b=a-b;
    a=a-b
    什么方法容易理解,就用谁,呵呵
      

  8.   

     a=a+b;
      b=a-b;
      a=b;//这样最后的a和b的值不还是之前的a的值吗
      

  9.   

    a = a + b;难道不用考虑一下溢出么?
      

  10.   

    public class T {
    public static void main(String[] args) {
    int a = Integer.MAX_VALUE - 1;
    int b = Integer.MAX_VALUE - 2;
    System.out.println(a + "    " + b);
    a = a + b;
    //此处打印a,确实溢出了
    b = a - b;
    a = a - b;
    System.out.println(a + "    " + b);
    //执行的结果如下:
    //2147483646    2147483645
    //2147483645    2147483646
    //根据这个结果我们就可以认为,溢出不会影响连个变量的交换
    }
    }
      

  11.   

    a = b + 0*(b=a);
      

  12.   

    a = b + 0 * (b=a);
      

  13.   

    楼主的不对a=a+b;
    b=a-b;
    a=a-b;
      

  14.   

    用楼主的方法,反其道而行,a=a-b ;b=a+b;a=b-a ;
      

  15.   

    我觉得你写得好像不对哦;
    #include “stdio.h”
    void main(){
        int a=1,b = 2;
        a = a+b;
        b = a-b;
        a = a-b;
        printf("%d%d",a,b);
        }