Aquí, veremos cómo intercambiar dos números usando un programa C++. A continuación se muestran los ejemplos:
Entrada: a = 2, b = 3 Salida: a = 3, b = 2
Entrada: a = 0, b = 1
Salida: a = 1, b = 0
Hay 5 formas de intercambiar dos números en C++
- Usando una tercera variable.
- Sin utilizar una tercera variable.
- Uso de llamada por referencia.
- Usando la función de intercambio().
- Usando el operador bit a bit.
Comencemos discutiendo cada uno de estos métodos en detalle.
1. Uso de la tercera variable
La idea es simple en este enfoque:
- Asigne a una variable temporal: temp = a
- Asigne b a a: a = b
- Asignar temperatura a b: b = temperatura
A continuación se muestra el programa C++ para implementar el enfoque anterior:
C++
// C++ program to swap two // numbers using 3rd variable #include<bits/stdc++.h> using namespace std; // Driver code int main() { int a = 2, b = 3; cout << "Before swaping a = " << a << " , b = " << b << endl; int temp; temp = a; a = b; b = temp; cout << "After swaping a = " << a << " , b = " << b << endl; return 0; }
Before swaping a = 2 , b = 3 After swaping a = 3 , b = 2
2. Sin usar la tercera variable
Aquí se utilizará el siguiente enfoque:
- Asigne a b la suma de a y b, es decir, b = a + b.
- Asigne a una diferencia de b y a, es decir, a = b – a.
- Asigne a b la diferencia de b y a, es decir, b = b – a.
A continuación se muestra el programa C++ para implementar el enfoque anterior:
C++
// C++ program to swap two // numbers without using 3rd // variable #include<bits/stdc++.h> using namespace std; // Driver code int main() { int a = 2, b = 3; cout << "Before swaping a = " << a << " , b = " << b << endl; b = a + b; a = b - a; b = b - a; cout << "After swaping a = " << a << " , b = " << b << endl; return 0; }
Before swaping a = 2 , b = 3 After swaping a = 3 , b = 2
3. Uso de llamada por referencia
Aquí se utilizará el siguiente enfoque:
- Cree una función de intercambio que intercambiará dos números usando la tercera variable temporal como se explicó en el método 1 (usando la tercera variable).
- Función de intercambio de llamadas con los parámetros a y b utilizando el enfoque de llamada por referencia .
A continuación se muestra el programa C++ para implementar el enfoque anterior:
C++
// C++ program to swap two // numbers using call by // reference #include<bits/stdc++.h> using namespace std; // Function which will swap // two numbers using call by Reference void Swap_two_numbers(int *x, int *y) { int temp; temp = *x; *x = *y; *y = temp; } // Driver code int main() { int a = 2, b = 3; cout << "Before swaping a = " << a << " , b = " << b << endl; // Function call to swap Swap_two_numbers(&a, &b); cout << "After swaping a = " << a << " , b = " << b << endl; return 0; }
Before swaping a = 2 , b = 3 After swaping a = 3 , b = 2
4. Usando la función de intercambio()
Este enfoque utiliza la función swap() incorporada para intercambiar las dos variables a y b. A continuación se muestra el programa C++ para implementar el enfoque anterior:
C++
// C++ program to swap two // numbers using swap() // function #include<bits/stdc++.h> using namespace std; // Driver code int main() { int a = 2, b = 3; cout << "Before swaping a = " << a << " , b = " << b << endl; // Built-in swap function swap(a, b); cout << "After swaping a = " << a << " , b = " << b << endl; return 0; }
Before swaping a = 2 , b = 3 After swaping a = 3 , b = 2
5. Uso del operador bit a bit
Aquí se utilizará el siguiente enfoque:
Asigne a «a» el XOR de «a» y «b», es decir, a = a ^ b.
Asigne a «b» el XOR de «b» y «a», es decir, b = b ^ a.
Asigne a b la diferencia de «b» y «a», es decir, a = a ^ b.
A continuación se muestra el programa C++ para implementar el enfoque anterior:
C++
// C++ program to swap two // numbers using Bitwise Operator. #include<bits/stdc++.h> using namespace std; // Driver code int main() { int a = 7, b = 3; cout << "Before swaping a = " << a << " , b = " << b << endl; a = a ^ b; b = b ^ a; // b = b ^ (a ^ b) = a a = a ^ b; // a = (a ^ b) ^ a = b cout << "After swaping a = " << a << " , b = " << b << endl; return 0; }
Producción:
Before swaping a = 7 , b = 3 After swaping a = 3 , b = 7