С два способа поменять местами переменные

Поменять местами значения 2 переменных с использованием указателей

Поменять местами значения целых переменных х и у не используя дополнительных переменных
Знаю, что это очень простая задача, но никак не могу сделать, пожалуйста помогите. Поменять.

Поменять местами значения вещественных переменных
Поменяйте местами значения вещественных переменных x и y

Поменять местами значения целых переменных
1.Поменять местами значения целых переменных Х, Y, Z таким образом, чтобы оказалось X\geq Y\geq Z.

Поменять местами значения целых переменных A и B
Поменять местами значения целых переменных. А и B, не используя дополнительные переменные.

sk007, ну и зачем ты придумал это выделение? Просто int уже не в моде?

nmcf, Прихоть такая у него, чего Вы прицеплись 😀

Меню пользователя @ Mournful Max
Посетить домашнюю страницу Mournful Max

nmcf, а нельзя без 3ей переменной ?
типа как-то так
а=5;
b = 7;
a = a + b;
a = a — a; //12 — 5 = 7
b = a — b; // 12 — 7 = 5

Добавлено через 6 минут
т.е. вот так:
a = 10
b = 20;

a = a+b // = 30
b = a — b// = 30 — 20 =10
a = a — b // 30 -10 = 20

Добавлено через 9 минут
можно, вот так:

Добавлено через 22 минуты
[CPP]# include
using namespace std;

//3.Используя указатели и оператор разыменования,
//обменять местами значения двух переменных.

void main()
<
setlocale(LC_ALL, «Russian»);
//Объявление и инициализация 2х переменных
int a = 55;
int b = 7;
//объявление типа данных указатель на int и инициализируем его адресом переменной b
int *numa = &a; //в numa записали адрес переменной а
//объявление типа данных указатель на int и инициализируем его адресом переменной a
int *numb = &b; //в numb записали адрес переменной b
//Инициализируем или перезаписываем переменную а с помощью операции разыменования адресом переменной
//т.е. в а закидываем b, а в b записываем а
a = *numb; //присвоили переменной а значение переменной b=7
b = *numa; // присвоили переменной b значение переменной a=7, т.к. в переменной а предыдущим действием
// уже записано значение 7

Значения переменных X, Y, Z поменять местами так
Значения переменных X, Y, Z поменять местами так, чтобы они оказались упорядоченными по убыванию.

Поменять местами значения двух переменных с использованием третьей переменной
Помогите разобраться. Только начала изучать программирование. Задача такая: составить программу.

Даны значения двух переменных a и b. Поменять местами значения этих переменных
1) Обмен значениями. Даны значения двух переменных a и b. Поменять местами значения этих переменных.

Значения переменных X,Y,Z поменять местами
Значения переменных X,Y,Z поменять местами так, что бы они оказались упорядоченными по возрастанию

Источник

Программирование на 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 – временный). Чтобы выполнить замену, придется также выполнить три действия:

  1. Присвоим переменной temp значение из переменной a.
  2. Присвоим a значение b.
  3. Присвоим b значение переменный temp. Готово!

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

Источник

Обмен значений переменных: разбор популярных способов решения известной задачи с IT-собеседований

Авторизуйтесь

Обмен значений переменных: разбор популярных способов решения известной задачи с IT-собеседований

Самый простой способ взаимно менять значения переменных — использование swap(a, b) или же аналогичного стандартного метода. Тем не менее, важно понимать как работает операция по обмену значений двух переменных, что мы покажем на нескольких примерах.

Читайте также:  Способы изменения фаз газораспределения двс

Для начала продемонстрируем неправильную реализацию и выясним, что в ней не так.

Ошибочная реализация

Если вы попытаетесь выполнить обмен значений этим способом, то увидите, что теперь в обеих переменных хранится значение переменной b . Происходит это ввиду построчного выполнения кода. Первая операция присваивания сохраняет значение переменной b в переменную a . Затем вторая — новое значение a в b , иными словами значение b в b . Таким образом, мы полностью теряем содержание контейнера a .

Теперь обратимся к правильной реализации.

С использованием буфера

Буфером в данном случае называется дополнительная используемая память. Давайте разберёмся зачем она здесь нужна. Если помните, в неправильной реализации мы потеряли значение переменной a после первой операции присваивания, в связи с чем в обеих доступных переменных осталось значение b . Чтобы этого избежать нам понадобится ещё одна переменная — c . В таком случае правильный алгоритм будет выглядеть так:

Для наглядности разберём его пошагово:

  1. Присваиваем переменной c значение переменной a . Сейчас в a записана a , в b — b , а в c — a .
  2. Присваиваем переменной a значение переменной b . Теперь в a хранится b , в b — также b и в c — a .
  3. Присваиваем переменной b значение переменной c . Сейчас в a находится старое значение b , в b — a , ну и в c остаётся a .

Как вы видите, переменная c после выполнения алгоритма не нужна, поэтому далee в программе её можно не использовать и даже вовсе удалить из памяти.

Сразу стоит заметить, что это самое краткое и экономное решение задачи, но можно использовать и больше переменных, не так ли?

Нам повезло, что сейчас вопрос экономии оперативной памяти не стоит так остро, как 20-30 лет назад. Тем не менее, в те времена swap был востребован не меньше, поэтому умные люди нашли способ заменить значения двух переменных без ввода третьей.

Арифметика

Сложение / вычитание

Для лучшего восприятия снова разберём алгоритм построчно:

  1. Присваиваем переменной a сумму значений переменных a и b . Сeйчас в a записано значение a + b , а в b всё ещё b .
  2. Переменной b присваиваем разность между новым значением переменной a и переменной b . В a также хранится a + b , но в b уже a .
  3. Наконец, присваиваем переменной a результат вычитания b из обновлённого значения a . Получается, что в a теперь содержится b , а в b — a .

Для C-подобных языков сокращённая запись этого алгоритма выглядит так:

Умножение / деление

Аналогичный способ решения задачи получается при замене сложения умножением и вычитания делением:

В сокращённом варианте:

Вычитание / Сложение

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

Обратите внимание, что в последней строке знак у переменной a изменился, а саму строчку можно записать иначе: a = b — a; .

Такой же принцип можно использовать поменяв местами деление и умножение.

Недостатки арифметического метода

Главным недостатком является большее количество операций, в чём можно убедиться посчитав операции сложения, вычитания и присваивания. Тeм болee, что умножeниe и дeлeниe болee «дорогостящиe». Заметной потеря скорости становится в ситуации, когда трeбуeтся менять значения большого количества пeрeмeнных.

Читайте также:  Как украсить пирог простым способом

Второй важный нeдостаток это область применения — числа. Согласитесь, менять значения пeрeмeнных, содержащих объeкты попросту нe получится без перегрузки операции. Впрочeм, дажe с числами могут возникнуть проблемы — арифметика для вeщeствeнных чисeл можeт выполняться некорректно, что приведёт к неожиданному результату.

Eстeствeнно, существует и менее очевидный способ рeшeния задачи без использования дополнительной памяти. Он основан на свойствах логических операций и работает с битовым представлением числа, а значит быстрее арифметического метода.

Битовые операции

Данный алгоритм основан на следующем свойстве операции XOR («исключающее или»): a XOR b XOR a = b .

Для любитeлeй коротких записeй приведём код одной строчкой. XOR в C-подобных языках замeняeтся знаком ^ :

Однако помните о точках следования. Из-за них этот код может вести себя непредсказуемо и давать разные результаты, поэтому никогда не используйте его в production коде.

Обязательно посмотрите более подробный разбор решения через битовые операции от Г. Лакмана Макдауэлла, автора известного сборника задач с собеседований, который есть в одной из наших книжных подборок.

Источник

Поменять местами значения целых переменных A и B

Поменять местами значения целых переменных х и у не используя дополнительных переменных
Знаю, что это очень простая задача, но никак не могу сделать, пожалуйста помогите. Поменять.

Поменять местами значения целых переменных
1.Поменять местами значения целых переменных Х, Y, Z таким образом, чтобы оказалось X\geq Y\geq Z.

Поменять местами значения целых переменных x и y, используя дополнительные переменные
Поменять местами значения целых переменных x и y ,используя дополнительные переменные . Вывести.

Поменять местами значения целых переменных А и В, не используя дополнительные переменные
Задача 9. Поменять местами значения целых пере¬менных А и В, не используя дополнительные.

Вот так, дай палец — руку по локоть отгрызут:)

Я незнаю почему выдает ошибка в программе. помогите братья
Поменять местами значения целых переменных A и B, не используя дополнительные переменные.

Вложения

3.rar (270 байт, 4 просмотров)

Чеченец, во-первых, swap() внутри себя создает дополнительные переменные, так что он наврядли он подходит.Во-вторых, ваш код у меня прекрасно компилируетсяи работает (dev-C++ и MSVS 2010).

А если надо без доп переменных, то можно так:

Хотя может просто не С++ компилятор )

Значения переменных X, Y, Z поменять местами так
Значения переменных X, Y, Z поменять местами так, чтобы они оказались упорядоченными по убыванию.

Поменять местами значения вещественных переменных
Поменяйте местами значения вещественных переменных x и y

Указатели: поменять циклически местами значения переменных
При помощи указателей на переменные a, b, c, поменять циклически местами значения этих переменных.

Поменять местами значения двух переменных, не используя дополнительной
4.Напишите программу,которая меняет местами значения двух переменных в памяти. В задаче 4.

Значения переменных а, Ь и с поменять местами так, чтобы оказалось а >= Ь >= с.
Значения переменных а, Ь и с поменять местами так, чтобы оказалось а >= Ь >= с. помогите.

Источник

Оцените статью
Разные способы