黑马程序员技术交流社区

标题: 交换两数三种方法实现 [打印本页]

作者: nebouxii    时间: 2015-10-23 22:53
标题: 交换两数三种方法实现
个人知识回顾加强记忆

方法一:            定义临时变量作为中间值交换,此处省略代码

方法二:
           #include<stdio.h>
int main(){
    int a = 1;
    int b = 2;
    printf("a=%d,b=%d\n",a,b);
    a = b - a;
    b = b - a;
    a = b + a;
    printf("a=%d,b=%d\n",a,b);
    return 0;
}

方法三:
     位运算实现两数交换

     #include<stdio.h>
int main(){

    int a = 1;
    int b = 2;
    printf("a=%d,b=%d\n",a,b);
    a = a ^ b;      //1^2
    b = a ^ b;      //1^2^2 = 1
    a = a ^ b;      // 1^1^2=2
    printf("a=%d,b=%d\n",a,b);
    return 0;

}




作者: MLP1355053753    时间: 2015-10-23 23:22
赞一个~.~呵呵哒
作者: 小Who    时间: 2015-10-23 23:26
赞,总结成为自己的东西,不错
作者: nebouxii    时间: 2015-10-24 21:50
MLP1355053753 发表于 2015-10-23 23:22
赞一个~.~呵呵哒

谢谢~~~~~
作者: nebouxii    时间: 2015-10-24 21:52
小Who 发表于 2015-10-23 23:26
赞,总结成为自己的东西,不错

谢谢,每次发帖只当回顾知识了
作者: nebouxii    时间: 2015-10-24 21:53
小Who 发表于 2015-10-23 23:26
赞,总结成为自己的东西,不错

谢谢,每次发帖就当回顾知识了
作者: cherrycool    时间: 2015-10-27 13:30
第四种方法:b=(a+b)-(a=b);
作者: 叶良辰    时间: 2015-10-27 14:18
cherrycool 发表于 2015-10-27 13:30
第四种方法:b=(a+b)-(a=b);

666666666脑洞大开
作者: 开枪吧_Z7K5Z    时间: 2015-10-27 22:18
向善于总结的同学致敬,赞一下!
作者: ncrbot    时间: 2015-10-27 22:45
赞赞赞!!!我找这个好久了
作者: rzx    时间: 2015-10-27 23:13
哇  大神呀好解答




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2