0 / 0 / 1
Регистрация: 13.06.2012
Сообщений: 60
|
|
1 | |
Обмен значениями двух переменных15.09.2013, 18:13. Показов 13092. Ответов 36
Метки нет (Все метки)
Нашёл на другом форуме занятную формулу обмена значений двух переменных(очевидно на с++):
b = – –a + (a=b)*0; Проверил на числах 1 и 101, рез 101 и 101. Помогите, было бы круто, формула в одну строку.
0
|
15.09.2013, 18:13 | |
Ответы с готовыми решениями:
36
Определить процедуру, осуществляющую обмен значениями двух переменных Обмен значениями двух переменных А и В без использования вспомогательной переменной Выполнить обмен значениями двух переменных используя указатели на эти переменные Обмен между значениями двух переменных, не используя при этом третьей переменной |
Модератор
8950 / 6716 / 921
Регистрация: 14.02.2011
Сообщений: 23,708
|
|||||||||||
15.09.2013, 18:19 | 2 | ||||||||||
что то сомнения она у меня вызывает похоже на неопределенное поведение
а чем тебя не устраивает классическое
2
|
0 / 0 / 1
Регистрация: 13.06.2012
Сообщений: 60
|
|
15.09.2013, 18:21 [ТС] | 3 |
0
|
Модератор
8950 / 6716 / 921
Регистрация: 14.02.2011
Сообщений: 23,708
|
|
15.09.2013, 18:36 | 5 |
может посему "исключающие ИЛИ" более надежен
да и более красив по моему ну этот то явно не годится или ты не так списал смотри 2 числа сначала a=b поскольку в скобках получилось два числа b потом умножаем на 0 получаем b= - -b+0; b=b Добавлено через 2 минуты покаж что осилил
1
|
347 / 292 / 37
Регистрация: 23.03.2012
Сообщений: 838
|
|
15.09.2013, 18:39 | 6 |
1
|
0 / 0 / 1
Регистрация: 13.06.2012
Сообщений: 60
|
|||||||||||||||||||||||||||||||
15.09.2013, 18:43 [ТС] | 7 | ||||||||||||||||||||||||||||||
Доп. переменная
0
|
0 / 0 / 1
Регистрация: 13.06.2012
Сообщений: 60
|
|
15.09.2013, 18:46 [ТС] | 9 |
способы нужны ещё такие, которые можно применить математически, а способности языка и компьютера всё таки не то.
0
|
347 / 292 / 37
Регистрация: 23.03.2012
Сообщений: 838
|
|
15.09.2013, 18:47 | 10 |
0
|
Модератор
8950 / 6716 / 921
Регистрация: 14.02.2011
Сообщений: 23,708
|
||||||
15.09.2013, 18:53 | 11 | |||||
в порядке бреда
цикл через флаг переноса (поскольку в Си нет эмулируем) для байта
1
|
0 / 0 / 1
Регистрация: 13.06.2012
Сообщений: 60
|
|
15.09.2013, 20:47 [ТС] | 13 |
Всем спасибо, нашёл 7 способ.
0
|
0 / 0 / 1
Регистрация: 13.06.2012
Сообщений: 60
|
||||||
15.09.2013, 22:43 [ТС] | 15 | |||||
Ничего интересного, обычное извращение с арифметикой.
0
|
193 / 170 / 32
Регистрация: 09.09.2013
Сообщений: 522
|
||||||
15.09.2013, 22:50 | 16 | |||||
вот восьмой способ ))
0
|
Модератор
8950 / 6716 / 921
Регистрация: 14.02.2011
Сообщений: 23,708
|
||||||
15.09.2013, 22:59 | 17 | |||||
_,
извини конечно но это не восьмой а второй способ что у автора что у меня и вот на него реакция мда, имеет место быть но для чисел положительных и меньше 9999 на эту же тему логический способ числа положительные и не больше 16 бит
2
|
0 / 0 / 1
Регистрация: 13.06.2012
Сообщений: 60
|
|
16.09.2013, 18:15 [ТС] | 18 |
0
|
Модератор
|
|
16.09.2013, 18:20 | 19 |
- так этот способ нечестный: он использует старшие разряды int для двухбайтовых целых. Что эквивалентно наличию аж двух дополнительных 16-битных переменных.
0
|
0 / 0 / 1
Регистрация: 13.06.2012
Сообщений: 60
|
|
16.09.2013, 18:26 [ТС] | 20 |
Любой способ имеет право на существование, занесём расход памяти в минус этого способа.
0
|
16.09.2013, 18:26 | |
16.09.2013, 18:26 | |
Помогаю со студенческими работами здесь
20
Обмен значениями двух чисел через указатели и функцию Обмен значений двух переменных Программа обмена значениями двух переменных a и b Обмен значений двух переменных типа char Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |