Условие
Последовательность состоит из различных натуральных чисел и завершается числом 0. Определите значение второго по величине элемента в этой последовательности. Гарантируется, что в последовательности есть хотя бы два элемента.
Решение
first_max = int(input()) second_max = int(input()) if first_max < second_max: first_max, second_max = second_max, first_max element = int(input()) while element != 0: if element >first_max: second_max, first_max = first_max, element elif element > second_max: second_max = element element = int(input()) print(second_max)
Комментарии
Аноним :
Не работает на последовательности
2
1
0
Ошибка сервера в приложении ‘/’.
Описание: На сервере возникла ошибка приложения. Текущая пользовательская настройка ошибок для этого приложения не позволяет удаленно просматривать сведения об ошибке данного приложения (из соображений безопасности). Однако, сведения можно просматривать в браузерах, запущенных на локальном сервере.
Сведения: Для разрешения просмотра сведений данного сообщения об ошибке на локальном сервере создайте тег в файле конфигурации «web.config», который находится в корневом каталоге текущего веб-приложения. В теге следует задать атрибут «mode» со значением «Off».
Примечания: Отображаемую в данный момент страницу ошибок можно заменить на пользовательскую страницу ошибок, изменив атрибут «defaultRedirect» тега конфигурации приложения таким образом, чтобы он содержал URL-адрес пользовательской страницы ошибок.
Найти второй максимум

Дан массив из nn элементов, необходимо определить максимальный элемент массива и элемент, являющийся максимальным без учёта этого элемента.
Формат входных данных
В первой строке вводится натуральное число nn (2≤n≤1002≤n≤100). Во второй через пробел вводятся nn элементов массива. Все числа целые и по модулю не превосходят 10001000.
Формат выходных данных
В качестве ответа выведите два числа — искомые элементы.
входные данныевыходные данные
6
1 3 2 7 6 4
7 6
Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Найти второй максимум в последовательности чисел
Дана последовательность целых чисел, оканчивающаяся нулём. Необходимо найти число, наиболее близкое.

Найти второй максимум в двоичном дереве поиска
Собственно, в задаче не проходит один тест. Условие: Выведите второй по величине элемент в.

Найти второй максимум бинарного дерева поиска
Прошу написать какие-нибудь извращенные входные данные для бинарного дерева поиска. Не проходит 7.
Второй максимум
Дан массив из n элементов, необходимо определить максимальный элемент массива и элемент, являющийся.
10 / 59 / 21
Регистрация: 12.03.2017
Сообщений: 514

Сообщение было отмечено Coolret2018 как решение
Решение
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 #include using namespace std; int main(int argc, char *argv[]) { int i, n, a, max1, max2, f = 0; cin >> n; cin >> max1; for (i = 1; in; i++) { cin >> a; if (f == 0) { if (a >= max1) { max2 = max1; max1 = a; } else max2 = a; f = 1; } else { if (a >= max1) { max2 = max1; max1 = a; } else if (a > max2) max2 = a; } } cout <" "; cout ; system("PAUSE"); return 0; }
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Найти максимум в диагонали матрицы и перевернуть строки, в которых есть этот максимум
Найти максимум в диагонали матрицы и перевернуть строки, в которых есть этот максимум. Вот.
В каждом столбце матрицы найти указанные величины (найти максимум, посчитать сумму)
нужно в каждом столбце матрицы найти указанные величины: а) второй наибольший элемент и его.
Найти максимум
Помогите советом начинающему, не могу понять в чём логическая ошибка. Есть у меня такая функция.

найти максимум из x[1]. x[n]
нужно сделать ету програму на класах, помогите пожалуста!
Или воспользуйтесь поиском по форуму:
Как найти второй максимум с
задание найти второй максимум в матрице. Есть вот такой алгоритм:
1. находим MAX1;
2. Заменяем его на заведомо малое число;
3. Повторяем процедуру поиска.
Если я напишу вот так:
m1=0; for(int i=0;im1) > a[i][j]=0; >
Какие в этом случае обнулится максимальный элемент матрицы или в процессе поиска обнулятся все элементы матрицы, которые больше нуля?
спят подружки вредные безмятежным сном,
Снятся мышкам хлебные крошки под столом, Буратинам — досточки, кошкам — караси,
Всем собакам — косточки, программистам — Си (с)
| Arcueid1691 |
| Посмотреть профиль |
| Найти ещё сообщения от Arcueid1691 |
Меркантильный кю
Участник клуба
Регистрация: 02.02.2008
Сообщений: 1,001
Сообщение от Arcueid1691
Какие в этом случае обнулится максимальный элемент матрицы или в процессе поиска обнулятся все элементы матрицы, которые больше нуля?
Мой мозг отказывается интерпретировать эту фразу
Алгоритм намного проще:
1. max1 = A[1][1]; max2 = A[1][1];
2. Бежим по матрице.
а) если очередной элемент б) если он > max2, но < max1, то max2 = A[i][j]
в) если он >= max1, то max2 = max1; max1 = A[i][j]
Росли вроде умными, выросли дурнями. (c)А.Васильев
Пользователь
Регистрация: 18.09.2009
Сообщений: 38
Эм, по-идее это не будет компилироваться:
m1=0; for(int i=0;im1) m1 = a[i][j]; > a[i][j]=0; >
Переменная j у тебя существует только в области видимости вложенного цикла (только что проверил, Visual Studio 2005 ругается на нее в строчке
a[i][j]=0;
Если объявить счетчики вне циклов, то в той же злочастной строчке:
a[i][j]=0;
j будет равен y (последнее значение j, не удовлетворяющее условию). У меня в той же вижуалке он обнулил первые элементы каждой строки начиная со первой (нулевую пропустил).
И естесственно сругался «stack corrupted», т.к. на последней итерации обнуляет элемент a[2][3], что уже за пределами памяти матрицы.
А почему бы не находить сразу два максимума?
int m1=0; int m2=0; for(int i=0;i m1) < m1 = a[i][j]; >else < if(a[i][j] >m2) m2 = a[i][j]; > > >
В итоге m2 будет второй максимум. Если нужен уникальный, т.е. в последовательности:
96 47 53 12 0 96 45
второй максимум — 53, то
if (a[i][j] > m1)
надо поменять на
if (a[i][j] >= m1)