黑马程序员技术交流社区
标题:
不使用临时变量,如何交换两个变量的值?
[打印本页]
作者:
杨深
时间:
2012-11-20 14:07
标题:
不使用临时变量,如何交换两个变量的值?
本帖最后由 杨深 于 2012-11-24 13:15 编辑
我就会使用临时变量交换两个变量值,如今要不使用临时变量,如何实现呢,等高手指导。
int j = 4;
int i = 8;
//使用第三方变量 交换 j 、i的值
int temp ; //定义零时变量 temp
temp = j;
j = i;
i = temp;
以上是使用临时变量,如果:
如果不使用 第三方的变量,交换 j i 的值?
作者:
jerry2627
时间:
2012-11-20 14:12
j = i+j;
i = j-i;
j = j-i;
这不就搞定了
作者:
王新阳
时间:
2012-11-20 14:12
int i=4;
int j=8;
j=i+j;
i=j-i;
j=j-i;
Console.WriteLine("i={0},j={1}",i,j);
Console.Readkey();
作者:
维纳斯之叶
时间:
2012-11-20 14:34
a=b-a;
b=b-a;
a=a+b;
把a和b看作是数轴上的两点就行了。。。
作者:
崔晓聪
时间:
2012-11-20 14:56
呵呵,用乘除法或者指针也行,但用乘除法要保证都不能为零!!
a=a*b
b=a/b
a=a/b
作者:
化宝峰
时间:
2012-11-20 14:56
这个有意思,还可以使用异或的方式交换两个变量,不使用中间变量的,例如:
int i = 6;
int j = 12;
交换的过程如下:
i = i ^ j; // 6^12 = 10
j = i ^ j; // j = 10 ^ 12 = 6
i = i ^ j; // i = 10 ^ 6 = 12
完成交换。
作者:
黑马王亚男
时间:
2012-11-20 19:53
楼上的几位同学恭喜你们,这道题是某公司的面试题。
作者:
邓连超
时间:
2012-11-20 20:46
a = a + b;
b = a - b;
a = a - b;
其实都差不多,了解什么意思了,用哪个都一样哇
作者:
舒远
时间:
2012-11-20 20:55
int a = 4,b = 8;
b = a + b - (a = b);
我见过这样的写法的。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2