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

Выполнить циклический сдвиг массива на x позиций вправо

22.05.2018, 22:27. Просмотров 1607. Ответов 6
Метки нет (Все метки)

Дано натуральное число n, действительные числа A1,.,An. Выполнить циклический сдвиг массива на x позиций вправо.

Распишите код с объяснениями, пожалуйста
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.05.2018, 22:27
Ответы с готовыми решениями:

Осуществить циклический сдвиг массива вправо на m позиций
Разработать алгоритм и программу. Дан одномерный массив С размерностью 1хn (1<=n<=20). Элементы...

Циклический сдвиг элементов массива вправо на К позиций
Дан массив размера N и число К (0<k<5, K<n) Осуществить циклический сдвиг элементов массива...

Осуществить циклический сдвиг элементов массива вправо на k позиций
Решаю задачи на сервере одном, задание было "Дан массив размера N ≥ 2 и число k (0 < k <...

Дан массив размера N. Осуществить циклический сдвиг элементов массива вправо на k позиций, где k – индекс максимального элемента
Помогите пожалуйста решить эту задачу, Дан массив размера N. Осуществить циклический сдвиг...

6
423 / 326 / 151
Регистрация: 10.06.2016
Сообщений: 1,558
23.05.2018, 09:10 2
Позиции, которые освобождаются при сдвиге чем заполняются?
0
0 / 0 / 0
Регистрация: 22.05.2018
Сообщений: 6
23.05.2018, 09:36  [ТС] 3
Оно замещается предыдущими значениями. Например сдвиг на 2 позиции значения 468013, 1шаг= 468013 -> 346801; 2шаг= 346801 -> 134680
0
423 / 326 / 151
Регистрация: 10.06.2016
Сообщений: 1,558
23.05.2018, 10:41 4
Razenkova, Понятно в ближайшее время напишу и выложу свой вариант.

Добавлено через 1 час 3 минуты
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
#include <cstdlib> // для system
#include <iostream> 
#include <string>
 
using std::cout;
using std::cin;
using std::endl;
 
int main()
{    
        int n,i,k,j,tmp;
        setlocale(0, "");
        cout << "Введите количество чисел в последовательности n:";
            cin >> n;
        cout << "Введите количество сдвигов вправо k:";
            cin >> k;
            int *x = new int[n]; 
        cout <<"*****Исходная последовательность"<< endl;
        for(i=1;i<=n;i++)
        {
        x[i]= 0.001*rand();
        cout <<x[i]<< endl;
        }
        for(i=1;i<=k;i++)
        {
        tmp=x[n];
        for(j=n-1;j>=1;j--)
               x[j+1]=x[j]; 
           x[1]=tmp;
        }
        cout <<"*****Результирующая последовательность"<< endl;
        for(j=1;j<=n;j++)
                cout <<x[j]<< endl;
            system("pause"); // Только для тех, у кого MS Visual Studio
}
1
++Ͻ
16344 / 9437 / 1816
Регистрация: 27.09.2012
Сообщений: 23,293
Записей в блоге: 2
23.05.2018, 13:41 5
std::rotate(std::begin(arr), std::begin(arr) + x % std::size(arr), std::end(arr));
0
423 / 326 / 151
Регистрация: 10.06.2016
Сообщений: 1,558
23.05.2018, 15:59 6
Croessmah, о чем студенту может рассказать ваш код?
0
++Ͻ
16344 / 9437 / 1816
Регистрация: 27.09.2012
Сообщений: 23,293
Записей в блоге: 2
23.05.2018, 16:42 7
slava_psk, о том, что так тоже можно. На крайняк, свой rotate написать - дело плёвое.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.05.2018, 16:42

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

Дан массив размера N. Осуществить циклический сдвиг элементов массива вправо на k позиций, где k- индекс максимального элемента.
Дан массив размера N. Осуществить циклический сдвиг элементов массива вправо на k позиций, где k-...

Сдвинуть элементы массива на три позиции вправо (сдвиг выполнить не циклический)
Дан одномерный массив М из 10 элементов. Сдвинуть его элементы на три позиции вправо (сдвиг...

Циклический сдвиг в младшей тетраде байта на n позиций вправо
Циклический сдвиг в младшей тетради байта на n позиций вправо Ребят поскажите как написать...

Осуществить циклический сдвиг битов в целом числе a на k позиций вправо
Осуществить циклический сдвиг битов в целом числе a на k позиций вправо.


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

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

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