A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

除了使用变量temp交换两个数以外,还有以下两种不常用的方法,很给力


void changeTwoNum(int a,int b){

    printf("交换前a=%d  b=%d\n",a,b);

   

    //1,加减法(可能溢出)

    a = b - a ;

    b = b - a;

    a = b + a;

   

    //2,按位异或

    a = a^b;

    b = a^b;

    a = a^b;

    printf("交换后a=%d  b=%d",a,b);

   

}




6 个回复

倒序浏览
试了,通过
回复 使用道具 举报
我记得有3种啊
回复 使用道具 举报
第三种就是采用中间变量的方法。
回复 使用道具 举报
也可以用除法或乘法:a=a*b/a;b=a*b/b;
回复 使用道具 举报

第一个可以这样
  1. a = a+b;
  2. b = a-b;
  3. a = a-b;
复制代码
回复 使用道具 举报
这都是比较高端的方法,但实际开发中一般就用一个临时变量temp来交换
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马