Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.09.2009, 14:26   #1
delete
Пользователь
 
Регистрация: 18.11.2008
Сообщений: 14
По умолчанию Массив.

Подскажите алгоритм поменять местами значения K-х элементов массивов не используя промежуточной переменной
delete вне форума Ответить с цитированием
Старый 14.09.2009, 14:31   #2
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

a[i] ^= a[j] ^= a[i] ^= a[j] ?
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 14.09.2009, 14:31   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну если речь идет о числах то я когда-то пользовался математическим методом:
Код:
int a,b;
 a=4;b=6;
 a+=b;
 b=a-b;
 a-=b;
(Поправился )
Смысл ясен?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.09.2009, 14:54   #4
delete
Пользователь
 
Регистрация: 18.11.2008
Сообщений: 14
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ну если речь идет о числах то я когда-то пользовался математическим методом:
Код:
int a,b;
 a=4;b=6;
 a+=b;
 b=a-b;
 a-=b;
(Поправился )
Смысл ясен?
Спасибо, ясно, но только в условии ничего не сказано числа или нет. Просто дан массив X(100) и Y(100), записать алг меняющий последовательно значения эл. X(k) и Y(k) для этих таблиц k=1..100, без промежуточных переменных.
В крайнем случае придется для чисел написать)

pproger
Не совсем понял смысл записи)
delete вне форума Ответить с цитированием
Старый 14.09.2009, 15:11   #5
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2delete
ты представь числа в бинарном виде и ксорь их. тогда поймешь
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 14.09.2009, 15:35   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
pproger
Опять таки это пройдет только если массив чисел, или указателей.
Автор: Уточни у преподавателя задание.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.09.2009, 15:37   #7
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2Stilet
Цитата:
Опять таки это пройдет только если массив чисел, или указателей.
естественно)
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 14.09.2009, 16:44   #8
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
Восклицание

Цитата:
Сообщение от pproger Посмотреть сообщение
a[i] ^= a[j] ^= a[i] ^= a[j] ?
Красиво. Но неверно - a[i] изменяется дважды до следующей sequence point.
Somebody вне форума Ответить с цитированием
Старый 14.09.2009, 17:16   #9
ds.Dante
Старожил
 
Аватар для ds.Dante
 
Регистрация: 06.08.2009
Сообщений: 2,992
По умолчанию

Ну и дважды - а почему не верно?


delete, это задание на сообразительность, или ты пытаешься экономить память?
ds.Dante вне форума Ответить с цитированием
Старый 14.09.2009, 18:50   #10
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

Цитата:
Сообщение от ds.Dante Посмотреть сообщение
Ну и дважды - а почему не верно?
Так а вдруг сначала запишется значение из левого ^=, а потом из правого поверх него.
Sequence point aka точка следования

Последний раз редактировалось Somebody; 14.09.2009 в 18:53.
Somebody вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
массив Настенька..Блонди Помощь студентам 3 12.06.2009 00:01
массив Настенька..Блонди Общие вопросы Delphi 0 11.06.2009 21:00
массив Castro Паскаль, Turbo Pascal, PascalABC.NET 12 14.05.2009 00:38
Массив =\ ZeroQl Помощь студентам 2 06.03.2009 20:34
Упорядочить массив в порядке возрастания и напечатать входной и исходный массив. TheVenny Помощь студентам 3 26.11.2008 15:06