Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 19.02.2016
Сообщений: 54
1

Сдвинуть массив А циклически на m элементов вправо

07.03.2016, 20:06. Просмотров 3177. Ответов 2
Метки нет (Все метки)

2.
Напишите программу, в которой создается одномерный массив (заполненный случайными
числами в диапазоне от 1 до 10) целых чисел А. Нужно сдвинуть массив А циклически на m
элементов вправо. При циклическом сдвиге вправо выталкиваемые элементы с конца
массива заполняют освобождающиеся места в начале массива.
Пример:
исходный массив : 3 1 6 3 8 5 6 2 8 9
укажите шаг сдвига ->4
измененный массив : 6 2 8 9 3 1 6 3 8 5
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.03.2016, 20:06
Ответы с готовыми решениями:

Сдвинуть массив циклически на К элементов вправо
Может кто знает.:) Сдвинуть массив циклически на К элементов вправо.

Перестановка, сдвинуть массив циклически на M элементов вправо
Нужно сдвинуть цик-лически на M элементов вправо. Выполнить перестановку элементов в массиве....

Циклически сдвинуть массив вправо на заданное количество элементов
Задать массив 13целых чисел, целое число k (k > 0). Вывести массив на экран. Осуществить...

Сдвинуть массив циклически вправо
Напишите программу, в которой создается одномерный массив (заполненный случайными числами в...

2
С чаем беда...
Эксперт CЭксперт С++
8026 / 3917 / 1082
Регистрация: 18.10.2014
Сообщений: 8,405
07.03.2016, 20:37 2
Тема только что мусолилась здесь

Одномерный массив. Циклический сдвиг вправо

Но вообще-то в С++ именно это делает готовая стандартная библиотечная функция 'std::rotate'.
0
Комп_Оратор)
Эксперт по математике/физике
8572 / 4289 / 582
Регистрация: 04.12.2011
Сообщений: 12,827
Записей в блоге: 14
07.03.2016, 20:56 3
Лучший ответ Сообщение было отмечено enzo32 как решение

Решение

Если ф-ция вывода не нравится, напишите свою.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <iostream> 
using namespace std;
#define n 10
void sycled_shift_of_array(int *arr, int size_arr, int shift)
{
if(!size_arr || !shift || shift==size_arr)return;
if(shift>size_arr)shift-=size_arr;
int tmp[n-1]={0};
for(int i=0; i<shift; ++i)
{
tmp[i]=arr[size_arr-shift+i];
}
int to_copy_to=size_arr-1;
for(int i=size_arr-shift-1; i>-1; --i,--to_copy_to)
{
arr[to_copy_to]=arr[i];
}
for(int i=0; i<shift; ++i)arr[i]=tmp[i];
}
 
template<typename T>
ostream &show_array(T *arr, int arr_size)
{
for(int i=0; i<arr_size; ++i)cout<<arr[i]<<" ";
return cout;
}
 
void main()
{
int arr[]={3, 1, 6, 3, 8, 5, 6, 2, 8, 9};
 show_array<int>(arr, n)<<endl;
 sycled_shift_of_array(arr, n, 11);
 show_array<int>(arr, n)<<endl;
 cout<<endl;
system("pause");    
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.03.2016, 20:56

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

Одномерный массив, Сдвинуть элементы массива циклически на n позиций вправо
#include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;math.h&gt; #include &lt;conio.h&gt; using namespace...

Массив: Циклически сдвинуть элементы массива на одну позицию вправо...
Требуется циклически сдвинуть элементы массива на одну позицию вправо. Я не понимаю, как делать....

Элементы одномерного массива из n элементов циклически сдвинуть на к мест вправо
В общем, я сделал это задание, но когда преподаватель проверял, сказал, что я сделал не так как...

Элементы одномерного массива размером N циклически сдвинуть на K элементов вправо
Элементы одномерного массива размером N циклически сдвинуть на K элементов вправо, переместив...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.