Programa C++ para intercambiar dos números

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++

  1. Usando una tercera variable.
  2. Sin utilizar una tercera variable.
  3. Uso de llamada por referencia.
  4. Usando la función de intercambio().
  5. 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:

  1. Asigne a una variable temporal: temp = a
  2. Asigne b a a: a = b
  3. 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;
}
Producción

Before swaping a = 2 , b = 3
After swaping a = 3 , b = 2

2. Sin usar la tercera variable

Aquí se utilizará el siguiente enfoque:

  1. Asigne a b la suma de a y b, es decir, b = a + b.
  2. Asigne a una diferencia de b y a, es decir, a = b – a.
  3. 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;
}
Producción

Before swaping a = 2 , b = 3
After swaping a = 3 , b = 2

3. Uso de llamada por referencia

Aquí se utilizará el siguiente enfoque:

  1. 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).
  2. 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;
}
Producción

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;
}
Producción

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

Publicación traducida automáticamente

Artículo escrito por ayonssp y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *