Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.03.2012, 09:17   #1
makashello
Пользователь
 
Регистрация: 14.09.2011
Сообщений: 30
Печаль Два наибольших значения

Задача: найдите два наибольших значения из 10 чисел. Подкиньте идею плиз. Код со счетчиком я без проблем могу написать для одного числа, а вот для двух не получается. Подкиньте хотя бы идею как это можно реализовать....
Просить помощи, не значит тупо списывать!
makashello вне форума Ответить с цитированием
Старый 28.03.2012, 10:54   #2
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Конкретно для двух - почти то же самое, что и для одного. В качестве начальных берем первые два элемента, определяем из них наибольший, это будет max1, другой будет max2. Затем в цикле сравниваем другие элементы. Если какой-то больше max2 (если меньше - игнорируем), то сравниваем также с max1.
Код:
if (a[i] > max1)
 {
 max2 = max1;
 max1 = a[i];
 }
else
 {
 max2 = a[i];
 }
Для произвольного количества наибольших значений - можно отсортировать по убыванию любым способом и взять первые N значений отсортированного массива. Если нужно узнать также номера этих элементов, то либо в отдельном массиве (изначально b[i] = i переставляем элементы в том же порядке, как в главном, либо сортируем не числа, а экземпляры структуры, в которой будет две переменные - сам элемент массива и номер элемента в неотсортированном (изначальном) массиве.
Скорее всего, вам больше подойдет первый вариант, но и про второй тоже полезно узнать.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 28.03.2012, 19:04   #3
makashello
Пользователь
 
Регистрация: 14.09.2011
Сообщений: 30
По умолчанию

Спасибо вам за идею! Всё работает... С меня + в репутацию..
Просить помощи, не значит тупо списывать!
makashello вне форума Ответить с цитированием
Старый 28.03.2012, 19:16   #4
makashello
Пользователь
 
Регистрация: 14.09.2011
Сообщений: 30
По умолчанию

не знаю как, но наверное это ошибка.. В моем примере в else условие не нужно, потому что если я ввожу допустим первые 9 чисел от 1 до 9 и последнее к примеру: "-1", то else мне запишет в переменную max2 (max2<max1 - по условию) -1, а если я ввожу по данному примеру то должно выводить 8... По-моему это ошибка....
Просить помощи, не значит тупо списывать!
makashello вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi. Определить два наибольших(хотя и ровных)произведения hotkep Помощь студентам 6 12.12.2011 14:21
Два разных значения в одной ячейки! nisan Microsoft Office Excel 25 29.10.2010 00:12
[C++] Определить два расположенных рядом значения Divoha Помощь студентам 9 28.06.2009 11:46
Как приравнять два разных значения в excel? Viento Microsoft Office Excel 7 06.01.2009 01:14
Найти два наибольших отрицательных числа Makarov Паскаль, Turbo Pascal, PascalABC.NET 8 14.06.2008 17:57