Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
a16a
3 / 3 / 1
Регистрация: 16.02.2014
Сообщений: 116
18.03.2014, 20:08     Дан массив размера N. Осуществить циклический сдвиг элементов массива вправо на k позиций, где k – индекс максимального элемента #1
Помогите пожалуйста решить эту задачу,

Дан массив размера N. Осуществить циклический сдвиг элементов массива вправо на k позиций, где k – индекс максимального элемента.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.03.2014, 20:08     Дан массив размера N. Осуществить циклический сдвиг элементов массива вправо на k позиций, где k – индекс максимального элемента
Посмотрите здесь:

C++ Дан массив.Все положительные элементы уменьшить на количество отрицательных элементов. Осуществить сдвиг вправо
C++ Дан массив размера N. Осуществить циклический сдвиг элементов массива вправо на k позиций, где k- индекс максимального элемента.
C++ Осуществить циклический сдвиг элементов в мат-це на k элементов вправо или вниз (в зависимости от введенного режима). Число k может быть больше кол-ва
C++ Ребят я не могу понять где ошибка (циклический сдвиг элементов массива вправо)
Массив: произвести сдвиг элементов на к позиций, где к-индекс максимального элемента массива C++
Одномерный массив. Осуществить сдвиг вправо на k позиций C++
Осуществить сдвиг элементов массива вправо на k позиций C++
Осуществить циклический сдвиг массива вправо на m позиций C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fishec
 Аватар для fishec
118 / 118 / 30
Регистрация: 07.09.2013
Сообщений: 337
18.03.2014, 20:45     Дан массив размера N. Осуществить циклический сдвиг элементов массива вправо на k позиций, где k – индекс максимального элемента #2
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.
Yandex
Объявления
18.03.2014, 20:45     Дан массив размера N. Осуществить циклический сдвиг элементов массива вправо на k позиций, где k – индекс максимального элемента
Ответ Создать тему
Опции темы

Текущее время: 04:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru