问题描述
- C语言中两个变量的值互换问题
-
两个变量的值互换为什么不能直接用 a=b;b=a;来实现。
解决方案
如gcwlwl7所说的
a=1 ,b=2 要变成a=2 b=1的话
用所列举的两个等式为
先a=b=2,此时a已经变成2了,
再b=a=2,b仍然等于2(a在上面已经变成2了。所以b=a即是b=2)
不过有种方法:
a=1;
b=2;
a=a+b=3; (1+2)
b=a-b=1; (3-2)
a=a-b=2; (3-1)
即最后就得到 a=2;b=1啦
这个是不要用到中间变量的方法
希望有用
解决方案二:
就像gcwlwl7说的,b将值赋予a后,执行b=a,相当于b的值木有变化。
解决方案三:
执行a=b后,a中的值就被b中的值取代了,a原来的值就消失了。
再执行b=a时,b中的值被a中的值取代了,但此时a中的值已经不是最初的值了,而是上次执行a=b后b的值了。
因此无法实现两个值的互换。
可以参考下列代码:
t=a;a=b;b=t;
解决方案四:
楼主 这是基础的东西
相当于找一个公共的容器
解决方案五:
注意值会被覆盖,所以添加一个中间变量把其中一个值先储存起来!
a=1,b=2,c=0;(中间变量)
c=a;a=b;b=c;
解决方案六:
a=b是,a的值就被修改掉了,再b=a,已经没有意义了。
时间: 2024-08-22 14:26:47