Este exemplo contém duas técnicas diferentes para trocar números na programação C. O primeiro programa usa variáveis temporárias para trocar números, enquanto o segundo programa não usa variáveis temporárias.
Exemplo 1: Números de troca (usando variável temporária)
#include using namespace std; int main() ( int a = 5, b = 10, temp; cout << "Before swapping." << endl; cout << "a = " << a << ", b = " << b << endl; temp = a; a = b; b = temp; cout << "After swapping." << endl; cout << "a = " << a << ", b = " << b << endl; return 0; )
Resultado
Antes de trocar. a = 5, b = 10 Após a troca. a = 10, b = 5
Para realizar a troca no exemplo acima, três variáveis são usadas.
O conteúdo da primeira variável é copiado para a variável temporária. Em seguida, o conteúdo da segunda variável é copiado para a primeira variável.
Finalmente, o conteúdo da variável temporária é copiado de volta para a segunda variável que completa o processo de troca.
Você também pode realizar a troca usando apenas duas variáveis, conforme abaixo.
Exemplo 2: trocar números sem usar variáveis temporárias
#include using namespace std; int main() ( int a = 5, b = 10; cout << "Before swapping." << endl; cout << "a = " << a << ", b = " << b << endl; a = a + b; b = a - b; a = a - b; cout << "After swapping." << endl; cout << "a = " << a << ", b = " << b << endl; return 0; )
O resultado deste programa é o mesmo do primeiro programa acima.
Vamos ver como funciona este programa:
- Inicialmente,
a = 5
eb = 10
. - Em seguida, adicionamos aeb e armazenamos em a com o código
a = a + b
. Isso significaa = 5 + 10
. Então,a = 15
agora. - Então usamos o código
b = a - b
. Isso significab = 15 - 10
. Então,b = 5
agora. - Novamente, usamos o código
a = a - b
. Isso significaa = 15 - 5
. Então, finalmentea = 10
,.
Portanto, os números foram trocados.
Nota: podemos usar multiplicação e divisão em vez de adição e subtração. No entanto, isso não funcionará se um dos números for 0.
int a = 5, b = 10; // using multiplication and division for swapping a = a * b; // a = 50 b = a / b; // b = 5 a = a / b; // a = 10