c面试题:不用中间变量,完成数值交换!

来源:互联网 发布:小区信息发布查询软件 编辑:程序博客网 时间:2024/05/23 15:09

交换数值,可能很多初学者都会采用中间变量来方便简单的完成,此种方法,虽比较符合人的逻辑思维,但并不是最佳方案。计算机其实更乐于处理一些逻辑运算(比如位运算),它在这方面相当高效。原因嘛,具体可以看看《计算机组成原理》。下面我将代码贴出:

 

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int a=2;
    int b=9;

    //逻辑运算亦或完成交换 快速高效
    a=a^b;
    b=a^b;
    a=a^b;
    printf("a = %d , b = %d\n :",a,b);


    //加减法完成交换
    a=a+b;
    b=a-b;
    a=a-b;
    printf("a = %d , b = %d\n :",a,b);
    return 0;
}

//运行结果

c面试题:不用中间变量,完成数值交换! - itbuddy - BackGarden::ItBuddy

 


0 0
原创粉丝点击