Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Показать сообщение отдельно
fishec
121 / 121 / 62
Регистрация: 07.09.2013
Сообщений: 343
18.03.2014, 20:45

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

18.03.2014, 20:45. Просмотров 975. Ответов 1
Метки (Все метки)

Лучший ответ Сообщение было отмечено 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.
http://www.cyberforum.ru/cpp-beginners/thread550374.html
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.03.2014, 20:45
Темы с ответами и решениями для C++ Дан массив размера N. Осуществить циклический сдвиг элементов массива вправо на k позиций, где k – индекс максимального элемента:

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

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

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

Осуществить циклический сдвиг элементов массива влево1|вправо2 на k позиций
Добрый день ребят, очень нужна Ваша помощь. Помогите решить задачу. Дан...

0
Дан массив размера N. Осуществить циклический сдвиг элементов массива вправо на k позиций, где k – индекс максимального элемента C++    
Другие темы раздела
C++ Удаление чётных строк из файла http://www.cyberforum.ru/cpp-beginners/thread1123190.html
есть txt Документ из него нужно удалить каждую 2-ю строку,как это сделать!? гуглю целый день,варианты нашол но не на c++ =(
C++ Ошибка в сумме модулей элементов массива Сумму модулей элементов массива, расположенных после минимального по модулю элемента Выдает ноль при включении, помогите плз... http://www.cyberforum.ru/cpp-beginners/thread1123184.html
C++ Дана действительная матрица размера 3*3. Найти сумму наибольших значений строки
Дана действительная матрица размера 3*3. Найти сумму наибольших значений строки. #include <iostream> using namespace std; int main() { int b,a,i,j,summstroki=0,s=0,nomer=0;
В чем разница std::cout и просто cout? C++
Ребят ,подскажите на простом языке для чайников . В чем разница std::cout и просто cout?
C++ Оценить овражность и построить линии уровня и траекторию поиска http://www.cyberforum.ru/cpp-beginners/thread1123112.html
В окрестности точки минимума функции f(x,y)=((y^3-x^2)^2)+100((1-x^2)) оценить овражность и построить линии уровня и траекторию поиска
C++ Нахождение интервала унимодальности с использованием алгоритма Свенна дана функция f(x,y)=((y^3-x^2)^2)+100((1-x^2)) ДЛя нахождения интервала унимодальности использовать алгоритм Свенна. подробнее
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru