Intercambiar dos números sin variable temporal

C++C++Beginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

Intercambiar dos números significa que sus valores deben intercambiarse, es decir, el valor inicial del primer número ahora debe ser lo que era el segundo número, y viceversa. En este laboratorio, aprenderemos dos maneras de intercambiar dos números sin utilizar una tercera variable:


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL cpp(("C++")) -.-> cpp/BasicsGroup(["Basics"]) cpp(("C++")) -.-> cpp/FunctionsGroup(["Functions"]) cpp(("C++")) -.-> cpp/AdvancedConceptsGroup(["Advanced Concepts"]) cpp(("C++")) -.-> cpp/IOandFileHandlingGroup(["I/O and File Handling"]) cpp(("C++")) -.-> cpp/SyntaxandStyleGroup(["Syntax and Style"]) cpp/BasicsGroup -.-> cpp/variables("Variables") cpp/BasicsGroup -.-> cpp/operators("Operators") cpp/FunctionsGroup -.-> cpp/function_parameters("Function Parameters") cpp/AdvancedConceptsGroup -.-> cpp/references("References") cpp/IOandFileHandlingGroup -.-> cpp/output("Output") cpp/IOandFileHandlingGroup -.-> cpp/user_input("User Input") cpp/IOandFileHandlingGroup -.-> cpp/files("Files") cpp/SyntaxandStyleGroup -.-> cpp/code_formatting("Code Formatting") subgraph Lab Skills cpp/variables -.-> lab-96217{{"Intercambiar dos números sin variable temporal"}} cpp/operators -.-> lab-96217{{"Intercambiar dos números sin variable temporal"}} cpp/function_parameters -.-> lab-96217{{"Intercambiar dos números sin variable temporal"}} cpp/references -.-> lab-96217{{"Intercambiar dos números sin variable temporal"}} cpp/output -.-> lab-96217{{"Intercambiar dos números sin variable temporal"}} cpp/user_input -.-> lab-96217{{"Intercambiar dos números sin variable temporal"}} cpp/files -.-> lab-96217{{"Intercambiar dos números sin variable temporal"}} cpp/code_formatting -.-> lab-96217{{"Intercambiar dos números sin variable temporal"}} end

Crea un nuevo archivo de C++

Abre tu terminal y navega hasta el directorio del proyecto con el comando:

cd ~/proyecto

Crea un nuevo archivo de C++ llamado swap.cpp usando el comando:

touch swap.cpp

Abre swap.cpp en tu editor de código preferido.

Escribe el código para intercambiar dos números usando los operadores + y -

En este paso, escribiremos el código para intercambiar dos números usando los operadores + y -. El código debe tomar dos números del usuario y intercambiarlos sin usar una tercera variable.

// swap.cpp
#include <iostream>
using namespace std;

void swap_numbers(int &x, int &y) {
    x = x + y;
    y = x - y;
    x = x - y;
}

int main() {
    int a, b;
    cout << "Ingrese el valor de a: ";
    cin >> a;
    cout << "Ingrese el valor de b: ";
    cin >> b;

    cout << "Antes de intercambiar: " << endl;
    cout << "a = " << a << endl;
    cout << "b = " << b << endl;

    swap_numbers(a, b);

    cout << "Después de intercambiar: " << endl;
    cout << "a = " << a << endl;
    cout << "b = " << b << endl;

    return 0;
}

En este código, hemos creado una función swap_numbers que toma dos argumentos enteros y realiza la operación de intercambio. Tomamos dos números a y b del usuario y llamamos a la función swap_numbers que intercambia sus valores. Finalmente, imprimimos los valores intercambiados de a y b.

Para ejecutar el programa, utiliza el comando:

g++ swap.cpp -o swap &&./swap

Escribe el código para intercambiar dos números usando los operadores * y /

En este paso, escribiremos el código para intercambiar dos números usando los operadores * y /. El código debe tomar dos números del usuario y intercambiarlos sin usar una tercera variable.

// swap.cpp
#include <iostream>
using namespace std;

void swap_numbers(int &x, int &y) {
    x = x * y;
    y = x / y;
    x = x / y;
}

int main() {
    int a, b;
    cout << "Ingrese el valor de a: ";
    cin >> a;
    cout << "Ingrese el valor de b: ";
    cin >> b;

    cout << "Antes de intercambiar: " << endl;
    cout << "a = " << a << endl;
    cout << "b = " << b << endl;

    swap_numbers(a, b);

    cout << "Después de intercambiar: " << endl;
    cout << "a = " << a << endl;
    cout << "b = " << b << endl;

    return 0;
 }

En este código también, hemos creado una función swap_numbers que toma dos argumentos enteros y realiza la operación de intercambio. Tomamos dos números a y b del usuario y llamamos a la función swap_numbers que intercambia sus valores. Finalmente, imprimimos los valores intercambiados de a y b. En este método de intercambio, usamos operaciones de multiplicación y división en lugar de suma y resta.

Para ejecutar el programa, utiliza el comando:

g++ swap.cpp -o swap &&./swap

Programa final

Aquí está el código completo del programa swap.cpp que intercambia dos números tanto por el método de suma-resta como por el de multiplicación-division.

// swap.cpp
#include <iostream>
using namespace std;

void add_subtract_swap(int &x, int &y) {
    x = x + y;
    y = x - y;
    x = x - y;
}

void multiply_divide_swap(int &x, int &y) {
    x = x * y;
    y = x / y;
    x = x / y;
}

int main() {
    int a, b;
    cout << "Ingrese el valor de a: ";
    cin >> a;
    cout << "Ingrese el valor de b: ";
    cin >> b;

    cout << "Antes de intercambiar: " << endl;
    cout << "a = " << a << endl;
    cout << "b = " << b << endl;

    add_subtract_swap(a, b);

    cout << "Después de intercambiar usando los operadores + y -: " << endl;
    cout << "a = " << a << endl;
    cout << "b = " << b << endl;

    multiply_divide_swap(a, b);

    cout << "Después de intercambiar usando los operadores * y /: " << endl;
    cout << "a = " << a << endl;
    cout << "b = " << b << endl;

    return 0;
}

Compila y ejecuta

Para compilar y ejecutar el programa, utiliza el comando:

g++ swap.cpp -o swap &&./swap

El programa pedirá al usuario dos números, los cuales intercambiará tanto de manera sumando-restando como multiplicando-dividiendo. La salida mostrará los valores iniciales de a y b, los valores intercambiados usando sumando-restando y los valores intercambiados usando multiplicando-dividiendo.

Resumen

El intercambio es una operación importante en la programación y a menudo es requerida en muchos algoritmos. En este laboratorio, aprendimos dos maneras de intercambiar dos números sin usar una tercera variable: usando sumas y restas, y usando multiplicaciones y divisiones. También aprendimos cómo crear funciones para realizar la operación de intercambio, lo que hace que nuestro código sea más modular y más fácil de leer.