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

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

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

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

27.12.2013, 14:58. Просмотров 781. Ответов 12
Метки нет (Все метки)

Написать собственную функцию для работы с одномерным динамическим массивом, заданным указателем. Алгоритмы решения всех подзадач, включая ввод массива с резервированием памяти и его вывод, оформить в виде функций. Во всех вариантах задан одномерный целочисленный массив a из n элементов. Заполнение массива можно выполнить вводом с клавиатуры, чтением из файла или с помощью генератора случайных чисел.
1.
Найти номер первого максимального элемента среди отрицательных элементов, расположенных до первого элемента, большего заданного числа Т.


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

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

Найти номер последнего максимального элемента среди элементов, лежащих в диапазоне [c,d] и расположенных до первого четного элемента. - C++
помогите с задачкой Найти номер последнего максимального элемента среди элементов, лежащих в диапазоне и расположенных до...

Найти значение максимального элемента среди парных по значению элементов, расположенных до первого непарного - C++
2)Есть одномерный массив целых чисел размером N.Найти значение максимального элемента среди парных(по значению) элементов, расположенных до...

Найти произведение элементов, расположенных правее первого элемента равного первого элемента равного k - C++
Дан вектор размерности N. Найти произведение элементов, расположенных правее первого элемента равного первого элемента равного k.

В одномерном массиве вычислить номер максимального элемента массива и сумму элементов массива, расположенных после первого положительного - C++
Задача 2. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) номер максимального по модулю элемента массива; 2)...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
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
642 / 563 / 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
642 / 563 / 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
Модератор
Эксперт CЭксперт С++
7210 / 4376 / 638
Регистрация: 29.11.2010
Сообщений: 11,887
27.12.2013, 23:53 #8
Цитата Сообщение от aLarman Посмотреть сообщение
int max = 0x80000000;//самое маленькое инт
std::numeric_limits<int>::min() не лучше?
aLarman
642 / 563 / 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
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
28.12.2013, 14:07 #11
Цитата Сообщение от Kirill R Посмотреть сообщение
Очень непрозрачный аналог.

Не по теме:

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

outoftime
║XLR8║
509 / 431 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
28.12.2013, 15:53 #12
aLarman, <climits> и #define MAX_INT или INT_MAX в помощь
MrGluck
Модератор
Эксперт CЭксперт С++
7210 / 4376 / 638
Регистрация: 29.11.2010
Сообщений: 11,887
28.12.2013, 16:37 #13
Цитата Сообщение от aLarman Посмотреть сообщение
Есть огромная куча "непрозрачных "примеров исп. языка
правильно. И нужно их избегать там, где нужно.
Например в вашем варианте можно запихнуть условие finded в проверку в цикле и будет всем счастье
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.12.2013, 16:37
Привет! Вот еще темы с ответами:

Найти номер первого максимального элемента - C++
Найти номер первого максимального элемента.

Найти номер первого максимального элемента массива - C++
найти номер первого максимального элемента реализовать с функциями

В массиве найти номер первого максимального элемента - C++
Дан целочисленный массив. Найти индекс первого максимального элемента

Дана последовательность из n действительных чисел. найти номер первого максимального элемента. - C++
помогите пожалуйста составить программу!!! Дана последовательность из n действительных чисел. найти номер первого максимального...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
28.12.2013, 16:37
Ответ Создать тему
Опции темы

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