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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Alexey322
0 / 0 / 0
Регистрация: 11.03.2016
Сообщений: 18
#1

Повторить последний минимальный элемент массива - C++

11.03.2016, 08:57. Просмотров 185. Ответов 7
Метки нет (Все метки)

Дан одномерный целочисленный массив из N элементов. Повторить (вставить после или до него такой же) последний минимальный элемент массива;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2016, 08:57     Повторить последний минимальный элемент массива
Посмотрите здесь:

C++ Если последний элемент массива положителен, то все элементы массива увеличить на квадрат его максимального элемента
Поменять первый максимальный и последний минимальный элемент массива C++
Удалить из массива последний отриц. элемент C++
Удалить последний элемент массива C++
C++ Минимальный элемент одномерного массива A заменить на третий отрицательный элемент
Обнулять по очереди максимальный и минимальный элементы массива, пока не останется последний. C++
C++ Последний элемент незаполненного массива
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
hoggy
6168 / 2534 / 444
Регистрация: 15.11.2014
Сообщений: 5,612
Завершенные тесты: 1
11.03.2016, 09:11     Повторить последний минимальный элемент массива #2
Цитата Сообщение от Alexey322 Посмотреть сообщение
массив
Цитата Сообщение от Alexey322 Посмотреть сообщение
вставить после или до него такой же
на языке с++ решения не существует.
zss
Модератор
Эксперт С++
6248 / 5851 / 1891
Регистрация: 18.12.2011
Сообщений: 14,993
Завершенные тесты: 1
11.03.2016, 11:28     Повторить последний минимальный элемент массива #3
Цитата Сообщение от hoggy Посмотреть сообщение
решения не существует
Почему это:
1. Создаем новый массив на 1 элемент длиннее.
2. Копируем в него элементы до минимального включительно
3. Копируем от минимального до конца
4. Удаляем старый массив.
5. Меняем адрес на адрес нового.

Шаблон программы
Образцы (шаблоны) программ для типовых задач
функция Work
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// пример обработки -  Повторить последний минимальный элемент массива
int* Work(int* &M,int n) // !!! Указатель передается по ссылке, т.к. адрес массива будет изменен !!!!
{
    int s=0;
    for(int i=1;i<n;i++)
    {
        if(M[s]>M[i])
            s=i;
    }
    int * tmp=new int[n+1];
    int j=0;
    for(int i=1;i<=s;i++)
       tmp[j++]=M[i];
    for(int i=s;i<n;i++)
       tmp[j++]=M[i];
    delete[] M;
    M=tmp;
    return tmp;
}
rikimaru2013
C++ Game Dev
2380 / 1074 / 235
Регистрация: 30.11.2013
Сообщений: 3,570
11.03.2016, 12:02     Повторить последний минимальный элемент массива #4
Цитата Сообщение от zss Посмотреть сообщение
Почему это:
Цитата Сообщение от zss Посмотреть сообщение
Создаем новый массив
Вы же сами ответили на вопрос) По стандарту С++ размер массива известный на момент компиляции и его размер константный на протяжении всей работы программы.

1) Поэтому добавить или убрать элеммент с массива не получится - память останется прежней.
2) Результатом выполнения этого задания будет новый массив заранее подготовленный как size +1 или указатель на выделенную память, что в народе зовётся динамический массив.

Да и hoggy, просто как я понимаю приципился к слову)
Для Дан контейнер ... вставьте ... - ответ есть.
Для Дан массив ... вставьте .... - ответ не возможно.
zss
Модератор
Эксперт С++
6248 / 5851 / 1891
Регистрация: 18.12.2011
Сообщений: 14,993
Завершенные тесты: 1
11.03.2016, 12:23     Повторить последний минимальный элемент массива #5
rikimaru2013, Задача явно из учебных.
Посему, наверняка имелось ввиду вставка в динамический массив.
hoggy
6168 / 2534 / 444
Регистрация: 15.11.2014
Сообщений: 5,612
Завершенные тесты: 1
11.03.2016, 20:03     Повторить последний минимальный элемент массива #6
Цитата Сообщение от zss Посмотреть сообщение
Посему, наверняка имелось ввиду вставка в динамический массив.
на языке с++ не существует динамических массивов.
zss
Модератор
Эксперт С++
6248 / 5851 / 1891
Регистрация: 18.12.2011
Сообщений: 14,993
Завершенные тесты: 1
11.03.2016, 21:18     Повторить последний минимальный элемент массива #7
Цитата Сообщение от hoggy Посмотреть сообщение
на языке с++ не существует динамических массивов
См.
http://cppstudio.com/post/432/
https://code-live.ru/post/cpp-dynamic-arrays/
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.03.2016, 23:26     Повторить последний минимальный элемент массива
Еще ссылки по теме:

C++ Последний элемент линейного массива
C++ Заменить последний положительный элемент массива на второй элемент массива
Поменять местами первый минимальный и последний максимальный элементы массива C++
C++ Заменить последний положительный элемент одномерного массива на второй элемент массива
Выводится только последний элемент массива C++

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

Или воспользуйтесь поиском по форуму:
hoggy
6168 / 2534 / 444
Регистрация: 15.11.2014
Сообщений: 5,612
Завершенные тесты: 1
11.03.2016, 23:26     Повторить последний минимальный элемент массива #8
Цитата Сообщение от zss Посмотреть сообщение
См.
вот из-за подобных корявых допущений в обучающих материалах,
и возник миф о "динамических массивах".
Yandex
Объявления
11.03.2016, 23:26     Повторить последний минимальный элемент массива
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru