2013-05-25 37 views
1

我想弄清楚如何使用临时变量交换两个以上的变量。有4个变量需要交换,1,2,3和4.变量1与2交换,3与3交换,4与4交换。看起来很简单,但我只学会了如何交换两个变量如此而且正在与更大的规模挣扎。我试过如何使用临时变量交换两个以上的变量

temp = 1 
1 = 2 
temp = 2 
2 = 3 
temp = 3 
3 = 4 
temp = 4 
4 = 1 

我需要多个临时变量吗?仍然只有初学者的任何帮助,将不胜感激!

编辑:对不起,忘了添加我是java编码。

回答

1

只要使用一个数组和一个循环,一个临时变量就足够了。 P代码,因为您没有提及该语言:

array = { 1, 2, 3, 4 } 
tmp = array[0] 
for i in [0, array.count - 1) 
    array[i] = array[i + 1] 
array[array.count - 1] = tmp 
1

考虑第三步发生了什么。原始值1(在第一行中保存为temp)会丢失,因为您将覆盖temp的值为2

事实证明,没有必要保存原始值2的副本,因为1中已经有副本。这同样适用于所有其他变量(1除外)。

所以你需要使用temp唯一的一次是在一开始挽救1值(如你正在做的),并且也是在最后一刻,当你的1原来的值赋给4。您不能使用1,因为它被覆盖,但仅为此目的而将副本保存在temp中。

所以最终的代码如下所示:

temp = 1 
1 = 2 
2 = 3 
3 = 4 
4 = temp 
1

数组是为您的要求的更好方法。在你目前的伪代码,你可以做这样的事情:

temp = 1 
1 = 2 
2 = 3 
3 = 4 
4 = temp 

在java中,你可以做类似下面使用数组:

int[] x = {5,15,25,35}; 
int temporary = x[0]; 
for(int j=0;j<x.length-1;j++){ 
    x[j]=x[j+1]; 
} 
x[x.length-1]=temporary;