我试图弄清楚如何使用临时变量交换两个以上的变量。有 4 个变量要交换,1,2,3 和 4。变量 1 是与 2 交换、2 与 3、3 与 4 和 4 与 1 交换。看起来很简单,但我只学会了如何交换两个变量如此,并且正在与更大的规模作斗争。我试过了
temp = 1
1 = 2
temp = 2
2 = 3
temp = 3
3 = 4
temp = 4
4 = 1
我需要多个临时变量吗?仍然只有初学者任何帮助将不胜感激!
编辑:对不起,忘记添加我正在为 java 编码。
我试图弄清楚如何使用临时变量交换两个以上的变量。有 4 个变量要交换,1,2,3 和 4。变量 1 是与 2 交换、2 与 3、3 与 4 和 4 与 1 交换。看起来很简单,但我只学会了如何交换两个变量如此,并且正在与更大的规模作斗争。我试过了
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
to 时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;