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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Удаление чётных строк из файла http://www.cyberforum.ru/cpp-beginners/thread1123190.html
есть txt Документ из него нужно удалить каждую 2-ю строку,как это сделать!? гуглю целый день,варианты нашол но не на c++ =(
C++ Ошибка в сумме модулей элементов массива Сумму модулей элементов массива, расположенных после минимального по модулю элемента Выдает ноль при включении, помогите плз //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include <iostream> #include <locale.h> using namespace std; 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)) ДЛя нахождения интервала унимодальности использовать алгоритм Свенна. подробнее

Показать сообщение отдельно
fishec
119 / 119 / 30
Регистрация: 07.09.2013
Сообщений: 338
18.03.2014, 20:45     Дан массив размера N. Осуществить циклический сдвиг элементов массива вправо на k позиций, где k – индекс максимального элемента
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.
 
Текущее время: 16:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru