Как поменять значения переменных местами c
Перейти к содержимому

Как поменять значения переменных местами c

  • автор:

c++ Как обменять значениями две переменных

Нужно написать программу, которая считывает значения двух целочисленных переменных a и b , затем меняет их значения местами (то есть в переменной a должно быть записано то, что раньше хранилось в b , а в переменной b записано то, что раньше хранилось в a ). Затем вывести значения переменных. Не знаю как обменять переменные значениями, символ = не помогает:

a = b; b = a; 
  • Фактически тоже самое можно сделать и в C++, заключив левую и правую часть в список аргументов пары функций. – Vlad from Moscow
  • Можно было и без переменной, через xor. – BOPOH

Если вы знаете альтернативный способ — пожалуйста, напишите ответ, по возможности снабдив его объяснением того, как и почему возможно такое решение.

Отслеживать
33.9k 25 25 золотых знаков 130 130 серебряных знаков 222 222 бронзовых знака
задан 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

@werfghjkml: всё нормально, на мелочах мир держится. Вы, главное, учитесь и продолжайте вопросы задавать. И постарайтесь, пожалуйста, в следующие вопросы добавить свой код, которым вы пытались решить задачу.

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
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); 

Поменять местами переменные

Здравствуйте! При решении задач, возник вопрос в правильности решения (код работает корректно, но сверяю свое решение с решением в интернет – и ничего похожего). Проверить некому. Помогите, пожалуйста:

Begin23◦. Даны переменные A, B, C. Изменить их значения, переместив содержимое A в B, B — в C, C — в A, и вывести новые значения переменных A, B, C.
Решение:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
#include #include #include using namespace std; void main() { setlocale(0, ""); int a, b, c; cout  "a= "; cin >> a; cout  "b= "; cin >> b; cout  "c= "; cin >> c; a = a + b + c; c = a - (b + c); b = a - (b + c); a = a - (b + c); cout  "a= "  a  endl; cout  "b= "  b  endl; cout  "c= "  c  endl; system("pause"); }

Begin24◦. Даны переменные A, B, C. Изменить их значения, переместив содержимое A в C, C — в B, B — в A, и вывести новые значения переменных A, B, C.
Решение:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
#include #include #include using namespace std; void main() { setlocale(0, ""); int a, b, c; cout  "a= "; cin >> a; cout  "b= "; cin >> b; cout  "c= "; cin >> c; a = a + b + c; b = a - (b + c); c = a - (b + c); a = a - (b + c); cout  "a= "  a  endl; cout  "b= "  b  endl; cout  "c= "  c  endl; system("pause"); }

Поменять местами две переменные без использования временной переменной в C#

В этом посте будет обсуждаться, как поменять местами две переменные без использования временной переменной в C#.

1. Использование кортежей

В C# 7.0 и более поздних версиях вы можете поменять местами значения двух переменных, используя новый синтаксис кортежа, без введения временной переменной. C# поддерживает деконструкцию кортежей, что позволяет распаковывать все элементы кортежа за одну операцию деконструкции, присваивая его элементы отдельным переменным.

В следующем примере показано, как можно поменять местами значения двух переменных с помощью деконструкции кортежа. Обратите внимание, что код с кортежами стал более читабельным, лаконичным и понятным.

Программирование на C, C# и Java

Уроки программирования, алгоритмы, статьи, исходники, примеры программ и полезные советы

ОСТОРОЖНО МОШЕННИКИ! В последнее время в социальных сетях участились случаи предложения помощи в написании программ от лиц, прикрывающихся сайтом vscode.ru. Мы никогда не пишем первыми и не размещаем никакие материалы в посторонних группах ВК. Для связи с нами используйте исключительно эти контакты: vscoderu@yandex.ru, https://vk.com/vscode

Поменять значения двух переменных

Рассмотрим, как поменять местами значения двух переменных в коде программы. Статья предназначена тем, кто только начинает делать первые шаги в программировании.

Как только вы начнете писать свою второю в жизни программу (первая — вывод слов Hello World), вы столкнетесь с необходимостью обмена значениями между двумя числовыми переменными, поскольку манипуляции с данными непременно это предполагают. В примерах кода, которые приводятся в статье мы оперируем с целочисленными переменными типа int, но данные примеры легко адаптировать под любой вид числовых переменных: byte, long, float, double и т.п. Для этого вам будет достаточно заменить все ключевые слова int, на требуемый тип данных.

Примеры подходят и будут работать во всех Си-подобных языках программирования: C, C++, C#; а также в языке Java.

Поменять значения двух переменных

Прежде чем писать программный код, давайте подумаем, как поменять значения двух переменных в принципе. Решим данную задачу у себя в голове. А затем формализуем выработанный алгоритм действий.

Начнем с тезиса о том, что переменные в программе имеют содержимое. Они содержат информацию. Для того, чтобы провести какую-либо аналогию с жизнью, нужно подумать: а какие предметы что-нибудь в себе содержат? Первое, что приходит на ум — это ёмкость с жидкостью.

Пусть у нас есть два стакана: в одном налито молоко, а в другом кока-кола. Как нам перелить содержимое одного стакана в другой (нельзя же смешивать эти два совершенно несовместимых продукта) [заметили аналогию? ведь содержимое двух переменных нам тоже нужно поменять местами]? Ответ очевиден — понадобится третий (пустой) стакан. С помощью него удастся перелить содержимое одного стакана в другой. Вот так:

  1. Перелить молоко из первого стакана в третий.
  2. Перелить кока-колу из второго стакана в первый.
  3. Из третьего стакана перелить молоко во второй стакан. Готово!

Иллюстрация действий приводится на рисунке ниже.

Поменять значения двух переменных - аналогия с жидкостью

Возвращаясь к программированию, делаем вывод, что для того, чтобы поменять значения двух переменных, понадобится промежуточная третья.

Пусть даны переменные a и b, и их значения нужно поменять местами. Нам понадобится промежуточная временная третья переменная, назовем её temp (сокращение от английского слова temporary — временный). Чтобы выполнить замену, придется также выполнить три действия:

Реализуем описанный выше алгоритм действий и составим программу обмена значениями двух переменных величин. Ниже представлен её код:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *