Échanger deux nombres sans variable temporaire

C++Beginner
Pratiquer maintenant

Introduction

Échanger deux nombres signifie que leurs valeurs doivent être permutées, c'est-à-dire que la valeur initiale du premier nombre devrait maintenant être celle que le second nombre avait, et vice versa. Dans ce laboratoire, nous allons apprendre deux façons d'échanger deux nombres sans utiliser une troisième variable :

Créer un nouveau fichier C++

Ouvrez votre terminal et accédez au répertoire du projet avec la commande :

cd ~/projet

Créez un nouveau fichier C++ nommé swap.cpp à l'aide de la commande :

touch swap.cpp

Ouvrez swap.cpp dans votre éditeur de code préféré.

Écrire le code pour échanger deux nombres en utilisant les opérateurs + et -

Dans cette étape, nous allons écrire le code pour échanger deux nombres en utilisant les opérateurs + et -. Le code devrait prendre deux nombres saisis par l'utilisateur et les échanger sans utiliser une troisième 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 << "Entrez la valeur de a : ";
    cin >> a;
    cout << "Entrez la valeur de b : ";
    cin >> b;

    cout << "Avant l'échange : " << endl;
    cout << "a = " << a << endl;
    cout << "b = " << b << endl;

    swap_numbers(a, b);

    cout << "Après l'échange : " << endl;
    cout << "a = " << a << endl;
    cout << "b = " << b << endl;

    return 0;
}

Dans ce code, nous avons créé une fonction swap_numbers qui prend deux arguments entiers et effectue l'opération d'échange. Nous prenons deux nombres a et b saisis par l'utilisateur et appelons la fonction swap_numbers qui échange leurs valeurs. Enfin, nous affichons les valeurs échangées de a et b.

Pour exécuter le programme, utilisez la commande :

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

Écrire le code pour échanger deux nombres en utilisant les opérateurs * et /

Dans cette étape, nous allons écrire le code pour échanger deux nombres en utilisant les opérateurs * et /. Le code devrait prendre deux nombres saisis par l'utilisateur et les échanger sans utiliser une troisième 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 << "Entrez la valeur de a : ";
    cin >> a;
    cout << "Entrez la valeur de b : ";
    cin >> b;

    cout << "Avant l'échange : " << endl;
    cout << "a = " << a << endl;
    cout << "b = " << b << endl;

    swap_numbers(a, b);

    cout << "Après l'échange : " << endl;
    cout << "a = " << a << endl;
    cout << "b = " << b << endl;

    return 0;
 }

Dans ce code également, nous avons créé une fonction swap_numbers qui prend deux arguments entiers et effectue l'opération d'échange. Nous prenons deux nombres a et b saisis par l'utilisateur et appelons la fonction swap_numbers qui échange leurs valeurs. Enfin, nous affichons les valeurs échangées de a et b. Dans cette méthode d'échange, nous utilisons des opérations de multiplication et de division au lieu d'addition et de soustraction.

Pour exécuter le programme, utilisez la commande :

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

Programme final

Voici le code complet du programme swap.cpp qui échange deux nombres à la fois par les méthodes d'addition-soustraction et de multiplication-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 << "Entrez la valeur de a : ";
    cin >> a;
    cout << "Entrez la valeur de b : ";
    cin >> b;

    cout << "Avant l'échange : " << endl;
    cout << "a = " << a << endl;
    cout << "b = " << b << endl;

    add_subtract_swap(a, b);

    cout << "Après l'échange en utilisant les opérateurs + et - : " << endl;
    cout << "a = " << a << endl;
    cout << "b = " << b << endl;

    multiply_divide_swap(a, b);

    cout << "Après l'échange en utilisant les opérateurs * et / : " << endl;
    cout << "a = " << a << endl;
    cout << "b = " << b << endl;

    return 0;
}

Compiler et exécuter

Pour compiler et exécuter le programme, utilisez la commande :

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

Le programme demandera à l'utilisateur deux nombres, qu'il échangera à la fois par les méthodes d'addition-soustraction et de multiplication-division. La sortie affichera les valeurs initiales de a et b, les valeurs échangées en utilisant l'addition-soustraction et les valeurs échangées en utilisant la multiplication-division.

Résumé

L'échange est une opération importante en programmation et est souvent requise dans de nombreux algorithmes. Dans ce laboratoire, nous avons appris deux façons d'échanger deux nombres sans utiliser une troisième variable : en utilisant l'addition-soustraction et en utilisant la multiplication-division. Nous avons également appris comment créer des fonctions pour effectuer l'opération d'échange, rendant notre code plus modulaire et plus facile à lire.