Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/55: Рейтинг темы: голосов - 55, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 14.11.2016
Сообщений: 26

Переставить в обратном порядке элементы массива, расположенные между его минимальным и максимальным элементами

21.11.2016, 17:05. Показов 11643. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток,есть задача которую мне необходимо решить, однако я не имею представления как ее решать(я нуб) так что прошу о помощи(если не составит труда то в коде добавить комментарии,ибо хочу еще сам разобратся).
Вот задача:
Дан массив размера N. Переставить в обратном порядке элементы массива, расположенные между его минимальным и максимальным элементами, включая минимальный и максимальный элементы и разместить в новом динамическом массиве. Вывести размер и содержимое массива.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.11.2016, 17:05
Ответы с готовыми решениями:

Переставить в обратном порядке элементы массива, расположенные между его минимальным и максимальным элементами
Дан массив размера 10. Переставить в обратном порядке элементы массива, расположенные между его минимальным и максимальным элементами....

Переставить в обратном порядке элементы массива, расположенные между его минимальным и максимальным элементами
Дан массив размера 10. Переставить в обратном порядке элементы массива, расположенные между его минимальным и максимальным элементами....

Переставить в обратном порядке элементы массива, расположенные между его минимальным и максимальным элементами
Дан массив, состоящий из n элементов. Переставить в обратном порядке элементы массива, расположенные между его минимальным и максимальным...

5
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
21.11.2016, 18:13
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <algorithm>
#include <iostream>
#include <iterator>
#include <vector>
 
int main()
{
    using container = std::vector<int>;
    using crit = container::const_reverse_iterator;
    container a = {2, 3, 4, 5, 1, 6, 7, 8, 9, 5}, b;
    auto pairIt = std::minmax_element(a.cbegin(), a.cend());
    if (pairIt.second < pairIt.first)
        std::swap(pairIt.first, pairIt.second);
    ++pairIt.second;
    std::copy(a.cbegin(), pairIt.first, std::back_inserter(b));
    std::copy(crit(pairIt.second), crit(pairIt.first), std::back_inserter(b));
    std::copy(pairIt.second, a.cend(), std::back_inserter(b));
    std::copy(b.cbegin(), b.cend(), std::ostream_iterator<int>(std::cout, " "));
}
0
0 / 0 / 0
Регистрация: 14.11.2016
Сообщений: 26
21.11.2016, 18:33  [ТС]
Прошу прощения,но нельзя ли это как-то проще решить эту задачу?(а конкретнее используя одномерный динамический массив)(я не понял ничего в этом коде).

Добавлено через 21 секунду
MrGluck, Прошу прощения,но нельзя ли это как-то проще решить эту задачу?(а конкретнее используя одномерный динамический массив)(я не понял ничего в этом коде).
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
21.11.2016, 19:24
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 <iostream>
 
int main()
{
    const int N = 10, a[N] = {2, 3, 4, 5, 1, 6, 7, 8, 9, 5};
    int b[N], iMin = 0, iMax = 0, first, second, bIndex = 0;
    for (int i=1; i < N; i++)
    {
        if (a[iMin] > a[i])
            iMin = i;
        if (a[iMax] < a[i])
            iMax = i;
    }
 
    if (iMin < iMax)
    {
        first = iMin;
        second = iMax;
    }
    else
    {
        first = iMax;
        second = iMin;
    }
 
    for (int i=0; i < first; i++)
        b[bIndex++] = a[i];
    for (int i=second; i >= first; i--)
        b[bIndex++] = a[i];
    for (int i=second+1; i < N; i++)
        b[bIndex++] = a[i];
 
    for (int i=0; i < N; i++)
        std::cout << b[i] << " ";
}
1
0 / 0 / 0
Регистрация: 14.11.2016
Сообщений: 26
22.11.2016, 16:13  [ТС]
MrGluck, Спасибо тебе!

Добавлено через 20 часов 48 минут
MrGluck, а где тут динамический массив?(и еще если не трудно не мог бы сделать так чтобы юзер сам вбивал данные массива с клавы)(прости за то что сильно беспокою)
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
23.11.2016, 21:24
Лучший ответ Сообщение было отмечено Kesuki как решение

Решение

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
39
40
41
42
43
44
45
#include <iostream>
 
int main()
{
    int N, iMin = 0, iMax = 0, first, second, bIndex = 0;
 
    std::cout << "Enter N: ";
    std::cin >> N;
    int *a = new int[N]; // динамически выделяем память под массив
 
    for (int i=0; i < N; i++)
    {
        std::cout << "Enter a[" << i << "]: ";
        std::cin >> a[i];
        if (a[iMin] > a[i])
            iMin = i;
        if (a[iMax] < a[i])
            iMax = i;
    }
 
    if (iMin < iMax)
    {
        first = iMin;
        second = iMax;
    }
    else
    {
        first = iMax;
        second = iMin;
    }
 
    int *b = new int[N];
    for (int i=0; i < first; i++)
        b[bIndex++] = a[i];
    for (int i=second; i >= first; i--)
        b[bIndex++] = a[i];
    for (int i=second+1; i < N; i++)
        b[bIndex++] = a[i];
 
    for (int i=0; i < N; i++)
        std::cout << b[i] << " ";
 
    delete[] a; // освобождаем память
    delete[] b;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.11.2016, 21:24
Помогаю со студенческими работами здесь

Как переставить в обратном порядке элементы массива, расположенные между его минимальным и максимальным элементами
Подскажите как реализовать перестановку элементов массива в заданом промежутке? Минимум и максимум массива я нашел, а как переставить...

Дан массив размера 10. Переставить в обратном порядке элементы массива, расположенные между его минимальным и максимальным элементами
Дан массив размера 10. Переставить в обратном порядке элементы массива, расположенные между его минимальным и максимальным элементами....

Переставить в обратном порядке элементы массива, расположенные между минимальным и максимальным элементами
Дан одномерный массив. Переставить в обратном порядке элементы массива, расположенные между минимальным и максимальным элементами. Прошу...

Переставить в обратном порядке элементы массива, расположенные между минимальным и максимальным элементами массива
1. Переставить в обратном порядке элементы массива, расположенные между минимальным и максимальным элементами массива.

Ввести одномерный массив А , вывести его. Переставить в обратном порядке все элементы между максимальным из отрицательных и минимальным элементами
Ввести одномерный массив А , вывести его. Переставить в обратном порядке все элементы между максимальным из отрицательных и минимальным...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru