5203230070 发表于 2018-9-26 21:39:54

如何在不添加另一个变量的情况下,使a,b的值互换?

#include <iostream>
using namespace std;

int main()
{
        int a,b;
        a=5;b=4;
        (a=b) and (b=a);
        cout<<a<<"               "<<b;
}

只改变倒数第三行的表达式(不适用其他语句,只改变表达式,不另添加变量的情况下),可以吗?

5203230070 发表于 2018-9-26 21:41:23

补充一下,将a,b值互换

pheron 发表于 2018-9-27 11:58:30

将a,b互换呀?用堆栈呀。
如果不用堆栈的话:
a = a + b;            //a = a,b的和
b = a - b;             //b = (a + b) - b = a
a = a - b;             //a = (a + b) - [(a + b) - b] = b

5203230070 发表于 2018-9-27 13:14:33

pheron 发表于 2018-9-27 11:58
将a,b互换呀?用堆栈呀。
如果不用堆栈的话:
a = a + b;            //a = a,b的和


哦{:5_106:}
还可以这样!谢谢大神!

求道于盲 发表于 2019-6-21 12:55:27

不使用第三个变量 进行交换 是一个愚蠢的想法
没什么意义
运行效率低
有逻辑错误隐患
使用限制苛刻

lh1996 发表于 2019-6-21 17:17:08

异或呀{:5_109:}
页: [1]
查看完整版本: 如何在不添加另一个变量的情况下,使a,b的值互换?