¿Utilizar lenguaje C para implementarlo, sin utilizar variables intermedias, para intercambiar los valores de dos variables enteras?
. . . Esto se puede lograr de tres maneras
1 Suma y resta
Por ejemplo
a=a b
b=a-b
a=a-b
Por supuesto, este método no es muy bueno porque puede causar una pérdida de precisión. . . .
Por ejemplo, a = 3,123456 b = 1234567,000000
Después del intercambio, los valores de cada variable quedan:
a = 1234567,000000 b = 3,125000 p>
Entonces se dice que es adecuado para intercambiar variables con valores enteros y de punto flotante
2 Multiplicación y división
a = a * b =; a / b; a = a / b;
La multiplicación y la división se parecen más a la correlación de la suma y la resta con la multiplicación y la división. Es similar a la suma y la resta: puede manejar números enteros y de punto flotante. variables, pero también hay una pérdida de precisión al manejar preguntas de variables de punto flotante. Pero la multiplicación y la división tienen un poco más de requisitos: b no debe ser 0.
Podemos ver en lo anterior: la suma, resta, multiplicación y división pueden desbordarse, y el desbordamiento de la multiplicación y división será particularmente grave. De hecho, de lo contrario, no habrá desbordamiento utilizando estos dos métodos. Tomando la suma y la resta como ejemplo, la operación de suma en el primer paso puede causar un desbordamiento, pero el desbordamiento causado por ella se desbordará en la operación de resta posterior.
3. Método XOR
a ^= b; b ^= a; a ^= b; completar el intercambio.
Entonces estos tres métodos tienen sus propios usos y debes elegir según tu propia situación. . . . .