![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 16.12.2010
Сообщений: 18
|
![]()
Есть задание: сдвинуть элементы заданного массива на k позиций вправо (влево — если k отрицательное).
Моя текущая реализация: Код:
При вводе отрицательного значения, некоторые значения остаются неизменёнными. Например, при k = -1, один элемент (последний) остаётся нулём; при k = -2 — два последних и т.д. Подскажите, пожалуйста, каким образом можно реализовать эту программу для всех случаев, чтобы она работала корректно? Заранее спасибо. |
![]() |
![]() |
![]() |
#2 | |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 16.12.2010
Сообщений: 18
|
![]()
EUGY, другие значения.
Например, если есть массив 1 2 3 4, то после сдвига вправо на один (k = 1) массив должен будет принять вид: 4 1 2 3. |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
![]()
Именно это проделывают STL функции rotate, rotate_copy, из <algorithm>.
Их исходный код примитивен, посмотри http://www.cplusplus.com/reference/algorithm/rotate/ |
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 12.11.2010
Сообщений: 8,568
|
![]()
Это называется циклический сдвиг элементов массива.
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сдвиг элементов массива и вопрос о strcpy | neonakaneya | Общие вопросы C/C++ | 9 | 09.01.2012 00:27 |
циклический сдвиг элементов массива | Carter | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 19.12.2011 19:54 |
Сдвиг элементов массива на 1 влево. Вывести матрицу в Memo | Abrokadawr | Помощь студентам | 3 | 04.11.2011 23:13 |
Удаление элементов массива и сдвиг | Alex11223 | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 12.01.2011 20:01 |
Описать процедуру,осуществляющую циклический сдвиг элементов массива на k позиций | Bloodpoisoning | Общие вопросы C/C++ | 0 | 29.11.2010 15:50 |