3 / 3 / 4
Регистрация: 16.02.2014
Сообщений: 132
1

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

18.03.2014, 20:08. Показов 3883. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста решить эту задачу,

Дан массив размера N. Осуществить циклический сдвиг элементов массива вправо на k позиций, где k – индекс максимального элемента.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.03.2014, 20:08
Ответы с готовыми решениями:

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

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

Массив: произвести сдвиг элементов на к позиций, где к-индекс максимального элемента массива
помогите пожалуйста разобраться с указателями, т.к. тема для меня новая и, как оказалось, сложная((...

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

1
126 / 125 / 62
Регистрация: 07.09.2013
Сообщений: 343
18.03.2014, 20:45 2
Лучший ответ Сообщение было отмечено a16a как решение

Решение

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
37
38
#include<iostream>
using namespace std;
int main(){
    int N;
    cout << "Enter N: ";
    cin >> N;
    int* Mas = new int[N];
    cout << "Enter elements: " << endl;
    for (int i = 0; i < N; ++i)
        cin >> Mas[i];
    cout << "Array: ";
    for (int i = 0; i < N; ++i)
        cout << Mas[i] <<" ";
    cout << endl;
    int k = 0;
    for (int i = 0; i < N; ++i)
        if (Mas[i]> Mas[k]) k = i;
    
    k = N - k;
    int first = 0;
    int last = N;
    int next = k;
    while (first != next){
        swap(Mas[first++], Mas[next++]);
        if (next == last)
            next = k;
        else if (first == k)
            k = next;
    }
 
    cout << "New array: ";
    for (int i = 0; i < N; ++i){
        cout << Mas[i] << " ";
    }
    cout << endl;
    system("pause");
    return 0;
}
Реализация сдвига из std::rotate.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.03.2014, 20:45
Помогаю со студенческими работами здесь

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

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

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

Осуществить циклический сдвиг элементов массива вправо на k позиций
дан массив размера N и число k(0&lt;k&lt;5,k&lt;4). осуществить циклический сдвиг элементов массива вправо...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru