Уроки программирования, алгоритмы, статьи, исходники, примеры программ и полезные советы
Поменять значения двух переменных
Рассмотрим, как поменять местами значения двух переменных в коде программы. Статья предназначена тем, кто только начинает делать первые шаги в программировании.
Как только вы начнете писать свою второю в жизни программу (первая — вывод слов Hello World), вы столкнетесь с необходимостью обмена значениями между двумя числовыми переменными, поскольку манипуляции с данными непременно это предполагают. В примерах кода, которые приводятся в статье мы оперируем с целочисленными переменными типа int, но данные примеры легко адаптировать под любой вид числовых переменных: byte, long, float, double и т.п. Для этого вам будет достаточно заменить все ключевые слова int, на требуемый тип данных.
Примеры подходят и будут работать во всех Си-подобных языках программирования: C, C++, C#; а также в языке Java.
Поменять значения двух переменных
Прежде чем писать программный код, давайте подумаем, как поменять значения двух переменных в принципе. Решим данную задачу у себя в голове. А затем формализуем выработанный алгоритм действий.
Шаблонная функция. Меняет местами значения переменных с помощью ссылок. c++ для начинающих. Дз#10
Начнем с тезиса о том, что переменные в программе имеют содержимое. Они содержат информацию. Для того, чтобы провести какую-либо аналогию с жизнью, нужно подумать: а какие предметы что-нибудь в себе содержат? Первое, что приходит на ум — это ёмкость с жидкостью.
Пусть у нас есть два стакана: в одном налито молоко, а в другом кока-кола. Как нам перелить содержимое одного стакана в другой (нельзя же смешивать эти два совершенно несовместимых продукта) [заметили аналогию? ведь содержимое двух переменных нам тоже нужно поменять местами]? Ответ очевиден — понадобится третий (пустой) стакан. С помощью него удастся перелить содержимое одного стакана в другой. Вот так:
- Перелить молоко из первого стакана в третий.
- Перелить кока-колу из второго стакана в первый.
- Из третьего стакана перелить молоко во второй стакан. Готово!
Иллюстрация действий приводится на рисунке ниже.
Возвращаясь к программированию, делаем вывод, что для того, чтобы поменять значения двух переменных, понадобится промежуточная третья.
Пусть даны переменные a и b, и их значения нужно поменять местами. Нам понадобится промежуточная временная третья переменная, назовем её temp (сокращение от английского слова temporary — временный). Чтобы выполнить замену, придется также выполнить три действия:
Реализуем описанный выше алгоритм действий и составим программу обмена значениями двух переменных величин. Ниже представлен её код:
Источник: vscode.ru
Напишите функцию, меняющую местами значения переменных с помощью указателей. С++ для начинающих ДЗ#9
Упражнения на Java: поменяйте местами две переменные
Напишите программу на Java для замены двух переменных.
Java: обмен двух переменных
Обмен двух переменных относится к взаимному обмену значениями переменных. Как правило, это делается с данными в памяти.
Самый простой способ поменять местами две переменные — это использовать третью временную переменную:
определить своп (а, б) temp: = a a: = b б: = темп
Иллюстрированная презентация:
Пример решения :
Java-код:
public class Exercise15 < public static void main(String[] args) < int a, b, temp; a = 15; b = 27; System.out.println(«Before swapping : a, b =»+a+», «+ + b); temp = a; a = b; b = temp; System.out.println(«After swapping : a, b =»+a+», «+ + b); >>
Без использования третьей переменной.
Пример решения : —
Java-код:
public class Exercise15 < public static void main(String[] args) < // int, double, float int a, b; a = 15; b = 27; System.out.println(«Before swapping : a, b =»+a+», «+ + b); a = a + b; b = a — b; a = a — b; System.out.println(«After swapping : a, b =»+a+», «+ + b); >>
До обмена: а, б = 15, 27 После замены: а, б = 27, 15
Блок — схема:
Пример решения (вход от пользователя):
Java-код:
import java.util.Scanner; public class Main < public static void main(String[] args) < int x, y, z; Scanner in = new Scanner(System.in); System.out.println(«Input the first number: «); x = in.nextInt(); System.out.println(«Input the second number: «); y = in.nextInt(); z = x; x = y; y = z; System.out.println(» Swapped values are3:» + x + » and » + y); >>
Введите первое число: 36 Введите второе число: 44 Поменяемые местами значения: 44 и 36
Блок — схема:
Редактор кода Java:
Внесите свой код и комментарии через Disqus.
Каков уровень сложности этого упражнения?
Источник: www.kodesource.top
c++ Как обменять значениями две переменных
Нужно написать программу, которая считывает значения двух целочисленных переменных a и b , затем меняет их значения местами (то есть в переменной a должно быть записано то, что раньше хранилось в b , а в переменной b записано то, что раньше хранилось в a ). Затем вывести значения переменных. Не знаю как обменять переменные значениями, символ = не помогает:
a = b; b = a;
- Фактически тоже самое можно сделать и в C++, заключив левую и правую часть в список аргументов пары функций. – Vlad from Moscow
- Можно было и без переменной, через xor. – BOPOH
Если вы знаете альтернативный способ — пожалуйста, напишите ответ, по возможности снабдив его объяснением того, как и почему возможно такое решение.
Отслеживать
33.6k 24 24 золотых знака 129 129 серебряных знаков 218 218 бронзовых знаков
задан 6 авг 2015 в 8:28
werfghjkml werfghjkml
137 1 1 золотой знак 3 3 серебряных знака 11 11 бронзовых знаков
Я голосую за закрытие этого вопроса как не соответствующего теме, потому что наряду с работой за автора это полнейшая профанация и нежелание что-то делать самому
6 авг 2015 в 8:29
Конечно не помогает, вам нужен обмен значений переменных, а не присвоение a=b.
6 авг 2015 в 8:30
В python может такое работать: a, b = b, a
6 авг 2015 в 8:33
Вопрос может быть и туп, но я только начал читать про c++. В интернете не нашел ответ на свои вопрос.
6 авг 2015 в 9:33
6 авг 2015 в 23:30
3 ответа 3
Сортировка: Сброс на вариант по умолчанию
Можно, например, использовать дополнительную переменную, чтобы обменять значения двух других переменных. Это уже реализовано в стандарте языка C++ функцией std::swap
Но, как я понимаю, вам надо написать соответствующий код самостоятельно.
Программа может выглядеть следующим образом
#include int main() < int a, b; std::cout > a >> b ) < std::cout else < std::cout >
Вывод программы на консоль:
Enter two values: 10 20 The original values: a = 10, b = 20 After swapping: a = 20, b = 10
EDIT: Я в своем комментарии к вопросу как раз имел в виду
std::tie( a, b ) = std::make_pair( b, a );
Другие способы — это, как я уже написал, использование другой стандартной функции
std::swap( a, b );
Или можно еще использовать новую функцию std::exchange
Вот демонстрационная программа, которая показывает использование этих стандартных функций
#include #include #include int main() < int a = 10, b = 20; std::cout )» data-controller=»se-share-sheet» data-se-share-sheet-title=»Поделиться ссылкой на ответ» data-se-share-sheet-subtitle=»» data-se-share-sheet-post-type=»answer» data-se-share-sheet-social=»facebook twitter » data-se-share-sheet-location=»2″ data-se-share-sheet-license-url=»https%3a%2f%2fcreativecommons.org%2flicenses%2fby-sa%2f3.0%2f» data-se-share-sheet-license-name=»CC BY-SA 3.0″ data-s-popover-placement=»bottom-start»>Поделиться)» title=»»>Улучшить ответ Отслеживать)»>изменён 8 авг 2015 в 11:21ответ дан 6 авг 2015 в 8:36 Vlad from MoscowVlad from Moscow44.7k33 золотых знака3838 серебряных знаков8989 бронзовых знаков1
- 1Думаю, раз есть готовая функция std::swap, то можно и ее смело использовать. Постановке задачи соответствует. :)– Nick Volynkin♦6 авг 2015 в 23:23
Добавить комментарий|8
Можно сделать в стиле Python-овского a, b = b, a:
#include #include int main()
В случае 2-х переменных это конечно перебор, т.к. есть swap, но в случае бОльшего количества переменных такая конструкция может оказаться полезной. Как пример, циклическая перестановка четырех переменных:
std::tie(a, b, c, d) = std::make_tuple(b, c, d, a);
Источник: ru.stackoverflow.com