|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.01.2016, 14:09 | #1 |
Новичок
Джуниор
Регистрация: 02.01.2016
Сообщений: 3
|
Обработка массива
Дан массив из первых n натуральных чисел( т. е. произвольная перестановка из первых n натуральных чисел ). Преобразовать массив таким образом, чтобы в нем оказалась перестановка индексных номеров при приведении исходной перестановки к натуральной( решение дать без использования вспомогательного массива ). Т. е. если, например, 4 - 1-ый элемент массива, то в результате 4 - ым элементом массива должа стать 1. Паскаль или С.
|
02.01.2016, 14:27 | #2 |
Пользователь
Регистрация: 23.12.2015
Сообщений: 22
|
Что должно быть на выходе: этот же массив или другой?
Если задача кажется легкой - то решать её придется очень долго.
|
02.01.2016, 14:29 | #3 |
Новичок
Джуниор
Регистрация: 02.01.2016
Сообщений: 3
|
Этот же массив.
|
02.01.2016, 14:44 | #4 |
Пользователь
Регистрация: 23.12.2015
Сообщений: 22
|
тут нужно временное хранилище в любом случае. и лучше на n-1 элементов (для предотвращения потери данных). Кстати: если попадутся одинаковые числа - то любое решение будет не правильным. Идея есть сделать вместо двух массивов один двумерный. В первом столбце исходные данные, а во втором результат. И выводить только второй столбец.
Если задача кажется легкой - то решать её придется очень долго.
|
02.01.2016, 14:57 | #5 |
Новичок
Джуниор
Регистрация: 02.01.2016
Сообщений: 3
|
Ну, я же написал, что дана перестановка из первых n натуральных чисел, т.е. элементы попарно не равны. Вспомогательный массив использовать нельзя. Я решил, используя множества уже переставленных элементов, однако задачу мне дал друг с мех-мата, знающий только с, и, с его слов, реализацию множеств в с они не прошли.
Я решал так: Код:
Последний раз редактировалось Stilet; 02.01.2016 в 16:12. |
02.01.2016, 15:12 | #6 |
Пользователь
Регистрация: 23.12.2015
Сообщений: 22
|
попробуйте циклом repeat пройтись по массиву. Вам понадобится счетчик (x: integer), 2 временнох хранилища элемента (i,y: integer) ну и сам массив
Код:
Если задача кажется легкой - то решать её придется очень долго.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Обработка массива с числами (разделить на два отдельных массива и вывести все числа, которые делятся на X ) | Grag963 | Помощь студентам | 2 | 21.11.2013 16:51 |
Обработка массива | Qusk | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 25.04.2013 11:00 |
Обработка массива | cat_gav | Общие вопросы C/C++ | 0 | 17.11.2012 18:35 |
инициализация массива, вывод массива и обработка массива должны быть реализованы с помоshью функций | airesjke | Помощь студентам | 0 | 02.03.2012 16:14 |
Обработка массива (си) | Pascaler | Помощь студентам | 1 | 01.06.2011 11:28 |