Этот пример содержит два разных метода обмена числами в программировании на 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 После перестановки. а = 10, б = 5
Для выполнения замены в приведенном выше примере используются три переменные.
Содержимое первой переменной копируется во временную переменную. Затем содержимое второй переменной копируется в первую переменную.
Наконец, содержимое временной переменной копируется обратно во вторую переменную, что завершает процесс обмена.
Вы также можете выполнить замену, используя только две переменные, как показано ниже.
Пример 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