Цей приклад містить дві різні методики обміну номерами в програмуванні на C. Перша програма використовує тимчасову змінну для обміну номерами, тоді як друга програма не використовує тимчасові змінні.
Приклад 1: Обмін номерами (з використанням тимчасової змінної)
#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; )
Вихідні дані
Перед обміном. a = 5, b = 10 Після обміну. a = 10, b = 5
Для здійснення обміну у наведеному вище прикладі використовуються три змінні.
Вміст першої змінної копіюється у змінну temp. Потім вміст другої змінної копіюється до першої змінної.
Нарешті, вміст змінної temp копіюється назад до другої змінної, яка завершує процес обміну.
Ви також можете виконати обмін, використовуючи лише дві змінні, як показано нижче.
Приклад 2: обмін номерами без використання тимчасових змінних
#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; )
Результат роботи цієї програми такий самий, як і перша програма вище.
Давайте подивимося, як працює ця програма:
- Спочатку
a = 5
іb = 10
. - Потім ми додаємо a та b і зберігаємо їх у коді з a
a = a + b
. Це означаєa = 5 + 10
. Отже,a = 15
зараз. - Тоді ми використовуємо код
b = a - b
. Це означаєb = 15 - 10
. Отже,b = 5
зараз. - Знову ж таки, ми використовуємо код
a = a - b
. Це означаєa = 15 - 5
. Отже , нарешті,a = 10
.
Отже, цифри поміняли місцями.
Примітка: Ми можемо використовувати множення та ділення замість додавання та віднімання. Однак це не спрацює, якщо одне з чисел дорівнює 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