回 帖 发 新 帖 刷新版面

主题:如何在不加入第三个变量的情况下,交换两个变量的值

如何在不加入第三个变量的情况下,交换两个变量的值
求大侠给个思路
我想了很久没有想出来。

回复列表 (共6个回复)

沙发

不只一种答案喔,给你一个例子
#include <stdio.h>
main ( )
{
    int a=3,b=4;
    printf("%d,%d\n",a,b);
    a=a+b;
    b=a-b;
    a=a-b;
    printf("%d,%d\n",a,b);
}
或者
#include <stdio.h>
main ( )
{
    int a=3,b=4;
    printf("%d,%d\n",a,b);
    a=a^b;
    b=a^b;
    a=a^b;
    printf("%d,%d\n",a,b);
}

板凳

这盘真的长见识了!

3 楼

[quote]这盘真的长见识了![/quote]
这种问题仅仅是游戏而已,不要去钻牛角尖了

4 楼

长见识了

5 楼

介个似乎好像很多面试题都有,使用异或的好处是,如果两个数都是比较大的数,相加可能会超出
int的范围,而使用异或,不论相加还是想减,都不会更改结果位数,不是超出范围。

6 楼

[quote]介个似乎好像很多面试题都有,使用异或的好处是,如果两个数都是比较大的数,相加可能会超出
int的范围,而使用异或,不论相加还是想减,都不会更改结果位数,不是超出范围。[/quote]

灰常支持!!!

我来回复

您尚未登录,请登录后再回复。点此登录或注册