Trocar Dois Números Sem Variável Temporária

C++Beginner
Pratique Agora

Introdução

Trocar dois números significa que seus valores devem ser intercambiados, ou seja, o valor inicial do primeiro número deve agora ser o que o segundo número era, e vice-versa. Neste laboratório, aprenderemos duas maneiras de trocar dois números sem usar uma terceira variável:

Criar um novo arquivo C++

Abra seu terminal e navegue até o diretório do projeto com o comando:

cd ~/project

Crie um novo arquivo C++ chamado swap.cpp usando o comando:

touch swap.cpp

Abra swap.cpp no seu editor de código preferido.

Escreva o código para trocar dois números usando os operadores + e -

Nesta etapa, escreveremos o código para trocar dois números usando os operadores + e -. O código deve receber dois números do usuário e trocá-los sem usar uma terceira variável.

// 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 << "Enter the value of a: ";
    cin >> a;
    cout << "Enter the value of b: ";
    cin >> b;

    cout << "Before swapping: " << endl;
    cout << "a = " << a << endl;
    cout << "b = " << b << endl;

    swap_numbers(a, b);

    cout << "After swapping: " << endl;
    cout << "a = " << a << endl;
    cout << "b = " << b << endl;

    return 0;
}

Neste código, criamos uma função swap_numbers que recebe dois argumentos inteiros e realiza a operação de troca. Recebemos dois números a e b do usuário e chamamos a função swap_numbers, que troca seus valores. Finalmente, imprimimos os valores trocados de a e b.

Para executar o programa, use o comando:

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

Escreva o código para trocar dois números usando os operadores * e /

Nesta etapa, escreveremos o código para trocar dois números usando os operadores * e /. O código deve receber dois números do usuário e trocá-los sem usar uma terceira variável.

// 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 << "Enter the value of a: ";
    cin >> a;
    cout << "Enter the value of b: ";
    cin >> b;

    cout << "Before swapping: " << endl;
    cout << "a = " << a << endl;
    cout << "b = " << b << endl;

    swap_numbers(a, b);

    cout << "After swapping: " << endl;
    cout << "a = " << a << endl;
    cout << "b = " << b << endl;

    return 0;
 }

Neste código também, criamos uma função swap_numbers que recebe dois argumentos inteiros e realiza a operação de troca. Recebemos dois números a e b do usuário e chamamos a função swap_numbers, que troca seus valores. Finalmente, imprimimos os valores trocados de a e b. Neste método de troca, usamos operações de multiplicação e divisão em vez de adição e subtração.

Para executar o programa, use o comando:

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

Programa final

Aqui está o código completo para o programa swap.cpp que troca dois números pelos métodos de adição-subtração e multiplicação-divisão.

// 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 << "Enter the value of a: ";
    cin >> a;
    cout << "Enter the value of b: ";
    cin >> b;

    cout << "Before swapping: " << endl;
    cout << "a = " << a << endl;
    cout << "b = " << b << endl;

    add_subtract_swap(a, b);

    cout << "After swapping using + and - operators: " << endl;
    cout << "a = " << a << endl;
    cout << "b = " << b << endl;

    multiply_divide_swap(a, b);

    cout << "After swapping using * and / operators: " << endl;
    cout << "a = " << a << endl;
    cout << "b = " << b << endl;

    return 0;
}

Compilar e executar

Para compilar e executar o programa, use o comando:

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

O programa solicitará ao usuário dois números, que serão trocados tanto pela forma de adição-subtração quanto pela de multiplicação-divisão. A saída mostrará os valores iniciais de a e b, os valores trocados usando adição-subtração e os valores trocados usando multiplicação-divisão.

Resumo

A troca (swapping) é uma operação importante na programação e é frequentemente necessária em muitos algoritmos. Neste laboratório, aprendemos duas maneiras de trocar dois números sem usar uma terceira variável: usando adição-subtração e usando multiplicação-divisão. Também aprendemos como criar funções para realizar a operação de troca, tornando nosso código mais modular e fácil de ler.