Обмен значениями двух переменных без использования временной переменной

C++Beginner
Практиковаться сейчас

Введение

Обмен значениями двух переменных означает, что их значения должны быть поменяны местами, то есть исходное значение первой переменной должно стать тем, что раньше было второй переменной, и наоборот. В этом практическом занятии мы узнаем два способа обмена значениями двух переменных без использования третьей переменной:

Создайте новый файл на C++

Откройте терминал и перейдите в директорию проекта с помощью команды:

cd ~/project

Создайте новый файл на C++, названный swap.cpp, с помощью команды:

touch swap.cpp

Откройте swap.cpp в предпочитаемом редакторе кода.

Напишите код для обмена значениями двух переменных с использованием операторов + и -

В этом шаге мы напишем код для обмена значениями двух переменных с использованием операторов + и -. Код должен принимать от пользователя два числа и менять их местами без использования третьей переменной.

// 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;
}

В этом коде мы создали функцию swap_numbers, которая принимает два целых аргумента и выполняет операцию обмена. Мы запрашиваем у пользователя два числа a и b и вызываем функцию swap_numbers, которая меняет их значения. Наконец, мы выводим переставленные значения a и b.

Для запуска программы используйте команду:

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

Напишите код для обмена значениями двух переменных с использованием операторов * и /

В этом шаге мы напишем код для обмена значениями двух переменных с использованием операторов * и /. Код должен принимать от пользователя два числа и менять их местами без использования третьей переменной.

// 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;
 }

В этом коде также мы создали функцию swap_numbers, которая принимает два целых аргумента и выполняет операцию обмена. Мы запрашиваем у пользователя два числа a и b и вызываем функцию swap_numbers, которая меняет их значения. Наконец, мы выводим переставленные значения a и b. В этом методе обмена мы используем операции умножения и деления вместо сложения и вычитания.

Для запуска программы используйте команду:

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

Завершающая программа

Вот полный код программы swap.cpp, которая меняет местами два числа как методом сложения-вычитания, так и методом умножения-деления.

// 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;
}

Компилировать и запустить

Для компиляции и запуска программы используйте команду:

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

Программа запросит у пользователя два числа, которые она поменяет местами как методом сложения-вычитания, так и методом умножения-деления. Вывод покажет исходные значения a и b, значения, поменявшиеся местами с использованием сложения-вычитания, и значения, поменявшиеся местами с использованием умножения-деления.

Резюме

Обмен значениями является важной операцией в программировании и часто требуется в многих алгоритмах. В этом практическом занятии мы узнали два способа обмена значениями двух переменных без использования третьей переменной: с использованием сложения и вычитания, а также с использованием умножения и деления. Мы также узнали, как создавать функции для выполнения операции обмена значениями, что делает наш код более модульным и легким для чтения.