我想弄清楚如何使用临时变量交换两个以上的变量。有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编码。
我想弄清楚如何使用临时变量交换两个以上的变量。有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编码。
只要使用一个数组和一个循环,一个临时变量就足够了。 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
(在第一行中保存为temp
)会丢失,因为您将覆盖temp
的值为2
。
事实证明,没有必要保存原始值2
的副本,因为1
中已经有副本。这同样适用于所有其他变量(1
除外)。
所以你需要使用temp
唯一的一次是在一开始挽救1
值(如你正在做的),并且也是在最后一刻,当你的1
原来的值赋给4
。您不能使用1
,因为它被覆盖,但仅为此目的而将副本保存在temp
中。
所以最终的代码如下所示:
temp = 1
1 = 2
2 = 3
3 = 4
4 = temp
数组是为您的要求的更好方法。在你目前的伪代码,你可以做这样的事情:
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;