Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
Fisherrus
0 / 0 / 0
Регистрация: 06.10.2013
Сообщений: 24
1

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

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

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


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

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

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

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

Найти отношение количества элементов, большего первого элемента к количеству элементов больших последнего элемента
Здравствуйте люди нужна помощь очень срочно по с++. Дан массив A(I), I=...

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

12
Kirill R
20 / 20 / 4
Регистрация: 08.04.2013
Сообщений: 144
27.12.2013, 15:19 2
Подсказку на что именно?
0
Fisherrus
0 / 0 / 0
Регистрация: 06.10.2013
Сообщений: 24
27.12.2013, 15:28  [ТС] 3
как найти номер первого максимального элемента среди отрицательных элементов, расположенных до первого элемента, большего заданного числа Т, а остальное я сама решу
0
aLarman
644 / 565 / 164
Регистрация: 13.12.2012
Сообщений: 2,113
Завершенные тесты: 1
27.12.2013, 16:06 4
найти элемент (первый попавшийся) который больше числа Т, запомнить индекс след элемента, пройтись от 0 до этого индекса, найти первый элемент (назовем его х)меньше нуля, и идя дальше по массиву, если найдется элемент который меньше нуля и больше чем элемент х, то вывести его индекс

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


найти элемент (первый попавшийся) который больше числа Т, запомнить индекс след элемента, пройтись от 0 до этого индекса, найти первый элемент (назовем его х)меньше нуля, и идя дальше по массиву, если найдется элемент который меньше нуля , то заменить х на него, и запомнить индекс, так пройти до индекса из самого первого поиска
1
Fisherrus
0 / 0 / 0
Регистрация: 06.10.2013
Сообщений: 24
27.12.2013, 16:33  [ТС] 5
эээ.. извините сможете на языке С++ представить это (просто я так плохо понимаю)
0
aLarman
644 / 565 / 164
Регистрация: 13.12.2012
Сообщений: 2,113
Завершенные тесты: 1
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;
}
1
Kirill R
20 / 20 / 4
Регистрация: 08.04.2013
Сообщений: 144
27.12.2013, 23:46 7
aLarman, у Вас вложенный цикл, а это уже квадратичная сложность. Лучше (быстрее по времени и гораздо проще для понимания) будет два последовательных цикла: в первом пробегаем масси в и находим первое число, большее Т ,и запомигаем его индекс, во втором цикле идём от начала массива до найденного индекса и ищем максимальный отрицательный элемент. В этом случае сложность линейная, плюс алгоритм прозрачен для понимания.
1
MrGluck
Модератор
Эксперт CЭксперт С++
8088 / 4941 / 1431
Регистрация: 29.11.2010
Сообщений: 13,400
27.12.2013, 23:53 8
Цитата Сообщение от aLarman Посмотреть сообщение
int max = 0x80000000;//самое маленькое инт
std::numeric_limits<int>::min() не лучше?
0
aLarman
644 / 565 / 164
Регистрация: 13.12.2012
Сообщений: 2,113
Завершенные тесты: 1
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() - все ровно
0
Kirill R
20 / 20 / 4
Регистрация: 08.04.2013
Сообщений: 144
28.12.2013, 13:54 10
аналог 2х отдельных
Очень непрозрачный аналог.
0
aLarman
644 / 565 / 164
Регистрация: 13.12.2012
Сообщений: 2,113
Завершенные тесты: 1
28.12.2013, 14:07 11
Цитата Сообщение от Kirill R Посмотреть сообщение
Очень непрозрачный аналог.

Не по теме:

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

0
outoftime
║XLR8║
763 / 662 / 212
Регистрация: 25.07.2009
Сообщений: 3,320
Записей в блоге: 5
28.12.2013, 15:53 12
aLarman, <climits> и #define MAX_INT или INT_MAX в помощь
0
MrGluck
Модератор
Эксперт CЭксперт С++
8088 / 4941 / 1431
Регистрация: 29.11.2010
Сообщений: 13,400
28.12.2013, 16:37 13
Цитата Сообщение от aLarman Посмотреть сообщение
Есть огромная куча "непрозрачных "примеров исп. языка
правильно. И нужно их избегать там, где нужно.
Например в вашем варианте можно запихнуть условие finded в проверку в цикле и будет всем счастье
0
28.12.2013, 16:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.12.2013, 16:37

В одномерном массиве вычислить номер максимального элемента массива и сумму элементов массива, расположенных после первого положительного
Задача 2. В одномерном массиве, состоящем из n вещественных элементов,...

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

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


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

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