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

Найти номер первого максимального элемента среди отрицательных элементов, расположенных до первого элемента, большего заданного числа Т - C++

Восстановить пароль Регистрация
 
Fisherrus
0 / 0 / 0
Регистрация: 06.10.2013
Сообщений: 24
27.12.2013, 14:58     Найти номер первого максимального элемента среди отрицательных элементов, расположенных до первого элемента, большего заданного числа Т #1
Написать собственную функцию для работы с одномерным динамическим массивом, заданным указателем. Алгоритмы решения всех подзадач, включая ввод массива с резервированием памяти и его вывод, оформить в виде функций. Во всех вариантах задан одномерный целочисленный массив a из n элементов. Заполнение массива можно выполнить вводом с клавиатуры, чтением из файла или с помощью генератора случайных чисел.
1.
Найти номер первого максимального элемента среди отрицательных элементов, расположенных до первого элемента, большего заданного числа Т.


можно подсказку
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.12.2013, 14:58     Найти номер первого максимального элемента среди отрицательных элементов, расположенных до первого элемента, большего заданного числа Т
Посмотрите здесь:

Найти номер последнего максимального элемента среди элементов, лежащих в диапазоне [c,d] и расположенных до первого четного элемента. C++
найти номер первого максимального элемента C++
Найти номер первого максимального элемента среди отрицательных элементов, расположенных до первого элемента, большего Т. C++
Найти произведение элементов, расположенных правее первого элемента равного первого элемента равного k C++
C++ В одномерном массиве вычислить номер максимального элемента массива и сумму элементов массива, расположенных после первого положительного
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kirill R
19 / 19 / 1
Регистрация: 08.04.2013
Сообщений: 134
27.12.2013, 15:19     Найти номер первого максимального элемента среди отрицательных элементов, расположенных до первого элемента, большего заданного числа Т #2
Подсказку на что именно?
Fisherrus
0 / 0 / 0
Регистрация: 06.10.2013
Сообщений: 24
27.12.2013, 15:28  [ТС]     Найти номер первого максимального элемента среди отрицательных элементов, расположенных до первого элемента, большего заданного числа Т #3
как найти номер первого максимального элемента среди отрицательных элементов, расположенных до первого элемента, большего заданного числа Т, а остальное я сама решу
aLarman
636 / 557 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
27.12.2013, 16:06     Найти номер первого максимального элемента среди отрицательных элементов, расположенных до первого элемента, большего заданного числа Т #4
найти элемент (первый попавшийся) который больше числа Т, запомнить индекс след элемента, пройтись от 0 до этого индекса, найти первый элемент (назовем его х)меньше нуля, и идя дальше по массиву, если найдется элемент который меньше нуля и больше чем элемент х, то вывести его индекс

Добавлено через 1 минуту
или


найти элемент (первый попавшийся) который больше числа Т, запомнить индекс след элемента, пройтись от 0 до этого индекса, найти первый элемент (назовем его х)меньше нуля, и идя дальше по массиву, если найдется элемент который меньше нуля , то заменить х на него, и запомнить индекс, так пройти до индекса из самого первого поиска
Fisherrus
0 / 0 / 0
Регистрация: 06.10.2013
Сообщений: 24
27.12.2013, 16:33  [ТС]     Найти номер первого максимального элемента среди отрицательных элементов, расположенных до первого элемента, большего заданного числа Т #5
эээ.. извините сможете на языке С++ представить это (просто я так плохо понимаю)
aLarman
636 / 557 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
27.12.2013, 17:00     Найти номер первого максимального элемента среди отрицательных элементов, расположенных до первого элемента, большего заданного числа Т #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
bool finded = false;
for(int i = 0; i<n;i++)
{
if(arr[i]>T)
{
finded = true;
int max = 0x80000000;//самое маленькое инт
int index = 0;
for(int j = 0; j<i+1 && j < n;j++)
{
if(arr[j] <0 && arr[j]>max)
{
max = arr[j];
index = j;
}
}
if(max != 0x80000000)
cout << "index of MAx = " << j << endl;
}
if(finded) break;
}
Kirill R
19 / 19 / 1
Регистрация: 08.04.2013
Сообщений: 134
27.12.2013, 23:46     Найти номер первого максимального элемента среди отрицательных элементов, расположенных до первого элемента, большего заданного числа Т #7
aLarman, у Вас вложенный цикл, а это уже квадратичная сложность. Лучше (быстрее по времени и гораздо проще для понимания) будет два последовательных цикла: в первом пробегаем масси в и находим первое число, большее Т ,и запомигаем его индекс, во втором цикле идём от начала массива до найденного индекса и ищем максимальный отрицательный элемент. В этом случае сложность линейная, плюс алгоритм прозрачен для понимания.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,416
27.12.2013, 23:53     Найти номер первого максимального элемента среди отрицательных элементов, расположенных до первого элемента, большего заданного числа Т #8
Цитата Сообщение от aLarman Посмотреть сообщение
int max = 0x80000000;//самое маленькое инт
std::numeric_limits<int>::min() не лучше?
aLarman
636 / 557 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
28.12.2013, 13:32     Найти номер первого максимального элемента среди отрицательных элементов, расположенных до первого элемента, большего заданного числа Т #9
Цитата Сообщение от Kirill R Посмотреть сообщение
у Вас вложенный цикл
Цитата Сообщение от aLarman Посмотреть сообщение
C++
1
if(finded) break;
аналог 2х отдельных

Добавлено через 38 секунд
Цитата Сообщение от MrGluck Посмотреть сообщение
std::numeric_limits<int>::min() не лучше?
лучше, я хз почему у меня такая конструкция отказалась компилится, std::numeric_limits<int>::max() - все ровно
Kirill R
19 / 19 / 1
Регистрация: 08.04.2013
Сообщений: 134
28.12.2013, 13:54     Найти номер первого максимального элемента среди отрицательных элементов, расположенных до первого элемента, большего заданного числа Т #10
аналог 2х отдельных
Очень непрозрачный аналог.
aLarman
636 / 557 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
28.12.2013, 14:07     Найти номер первого максимального элемента среди отрицательных элементов, расположенных до первого элемента, большего заданного числа Т #11
Цитата Сообщение от Kirill R Посмотреть сообщение
Очень непрозрачный аналог.

Не по теме:

Есть огромная куча "непрозрачных "примеров исп. языка

outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
28.12.2013, 15:53     Найти номер первого максимального элемента среди отрицательных элементов, расположенных до первого элемента, большего заданного числа Т #12
aLarman, <climits> и #define MAX_INT или INT_MAX в помощь
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.12.2013, 16:37     Найти номер первого максимального элемента среди отрицательных элементов, расположенных до первого элемента, большего заданного числа Т
Еще ссылки по теме:

Найти номер первого максимального элемента C++
C++ Дан массив, упорядоченный по убыванию. Найти номер первого элемента, меньшего заданного числа a
В массиве найти номер первого максимального элемента C++

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

Или воспользуйтесь поиском по форуму:
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,416
28.12.2013, 16:37     Найти номер первого максимального элемента среди отрицательных элементов, расположенных до первого элемента, большего заданного числа Т #13
Цитата Сообщение от aLarman Посмотреть сообщение
Есть огромная куча "непрозрачных "примеров исп. языка
правильно. И нужно их избегать там, где нужно.
Например в вашем варианте можно запихнуть условие finded в проверку в цикле и будет всем счастье
Yandex
Объявления
28.12.2013, 16:37     Найти номер первого максимального элемента среди отрицательных элементов, расположенных до первого элемента, большего заданного числа Т
Ответ Создать тему
Опции темы

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