Условие
Даны два целых числа a и b. Реализуйте функцию void swap_values(int *a, int *b), которая меняет местами значения двух переменных, переданных ей через указатели. Обмен выполняйте внутри функции, изменяя объекты по переданным адресам. Функция не должна выполнять ввод или вывод. Переданные указатели указывают на существующие переменные типа int и не равны нулевому указателю.
В функции main прочитайте два числа в отдельные переменные, вызовите swap_values(&a, &b) и выведите значения переменных после вызова. Использование готовых функций обмена, включая std::swap, запрещено. Решение через указатели можно написать как на C, так и на C++.
Опционально, для знакомых со ссылками в C++: вместо варианта с указателями реализуйте функцию void swap_values(int &a, int &b) и вызовите её как swap_values(a, b). Значения исходных переменных также должны изменяться внутри функции. Этот вариант доступен только в C++ и не является обязательным.
Ограничения
Время: 2 секунды. Память: 64 МиБ. Вывод: до 2 МиБ. Стандарты: C11 / C++17.
Входные данные
Два целых числа a и b в одной строке через пробел. Оба числа находятся в диапазоне 32-битного знакового int: −2³¹ ≤ a, b ≤ 2³¹ − 1.
Выходные данные
Два целых числа в одной строке через пробел — значения переменных a и b после обмена. Первым выведите исходное значение b, вторым — исходное значение a.
Примеры
5 -2
-2 5
7 7
7 7
-2147483648 2147483647
2147483647 -2147483648