C语言中,怎样不用中间变量而互换两个变量的值呢?
答案:5 悬赏:10
解决时间 2021-01-07 20:17
- 提问者网友:星軌
- 2021-01-07 14:06
C语言中,怎样不用中间变量而互换两个变量的值呢?
最佳答案
- 二级知识专家网友:持酒劝斜阳
- 2021-01-07 14:30
有两种方式可以不使用中间变量,交换同类型的变量a,b的值:
1 使用加法操作。
a+=b;
b=a-b;
a -= b;
2 使用异或操作:
a^=b;
b^=a;
a^=b;
1 使用加法操作。
a+=b;
b=a-b;
a -= b;
2 使用异或操作:
a^=b;
b^=a;
a^=b;
全部回答
- 1楼网友:舍身薄凉客
- 2021-01-07 19:34
互换两个变量的值函数swap(),其实是用中间变量实现的
- 2楼网友:拜訪者
- 2021-01-07 18:29
比如说:
a b
a = a+b;
b = a-b;
a = a-b;
例如:
a=5,b=3;
a = a+b =8;
b = a -b = 8-3 = 5;
a = a-b = 8 -5 =3
a b
a = a+b;
b = a-b;
a = a-b;
例如:
a=5,b=3;
a = a+b =8;
b = a -b = 8-3 = 5;
a = a-b = 8 -5 =3
- 3楼网友:不甚了了
- 2021-01-07 17:23
可以啊。
一:
int a,b;
a=10;
b=1;
a=a^b;
b=a^b;
a=a^b;
结果:a=1;b=10;
^是异或运算;
二;
int a=10,b=20;
a=a+b;
b=a-b;
a=a-b;
结果:a=20;b=10;
一:
int a,b;
a=10;
b=1;
a=a^b;
b=a^b;
a=a^b;
结果:a=1;b=10;
^是异或运算;
二;
int a=10,b=20;
a=a+b;
b=a-b;
a=a-b;
结果:a=20;b=10;
- 4楼网友:行雁书
- 2021-01-07 15:54
对于整数的确可以像楼上几个同学说的进行交换,但是这只是对于整数这个特殊情况,对于一般意义的量,比如指针类型,除非深入了解各种变量的计算机内部表示,否则只能通过中间变量来交换两个变量的值。而且从效率的角度来说,通过一个中间变量交换只是增加了一个空间开销,即使是两个整数交换的情况,通过中间变量交换也是最明智的选择,因为对整数交换的特殊方法只能注定程序的运行效率不高。
这个问题提的有想法。但是事实是目前我们实现交换两个变量的最好方法就是通过一个中间变量,虽然对于某些变量有些特殊的技巧使它们不通过中间变量实现,但是运算量大,代价远不如通过中间变量。
这个问题提的有想法。但是事实是目前我们实现交换两个变量的最好方法就是通过一个中间变量,虽然对于某些变量有些特殊的技巧使它们不通过中间变量实现,但是运算量大,代价远不如通过中间变量。
参考资料:《C程序设计语言》《深入理解计算机系统》
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯