我正试图弄清楚如何使用临时变量交换两个以上的变量。有4个变量要交换,1,2,3和4.变量一个是交换2,2个用3个,3个用4个和4个用1.这看起来很简单但我只学会了如何交换两个变量如此,我正在努力扩大规模。我试过了
temp = 1
1 = 2
temp = 2
2 = 3
temp = 3
3 = 4
temp = 4
4 = 1
我需要多个临时变量吗?仍然只是初学者的任何帮助将不胜感激!
编辑:对不起,忘了添加我为java编码。
答案 0 :(得分: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)
考虑第三步中发生的事情。 1
的原始值(在第一行中保存到temp
)将丢失,因为您使用temp
的值覆盖2
。
事实证明,无需保存2
原始值的副本,因为1
中已有副本。这同样适用于所有其他变量(1
除外)。
因此,您需要使用temp
的唯一时间才是保存1
的价值(就像您目前正在做的那样),也是在您分配原始文件时的最后1
到4
的值。您无法使用1
,因为它已被覆盖,但仅为此目的,副本已保存在temp
中。
所以最终的代码如下:
temp = 1
1 = 2
2 = 3
3 = 4
4 = temp
答案 2 :(得分: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;