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

Поиск 2-х наибольших чисел - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как занести в массив содержимое файла? http://www.cyberforum.ru/cpp-beginners/thread111240.html
Каким образом можно занести содержимое текстового файла в массив? Т.е. имеется какой-либо читабельный (английский) текст в файле и его надо занести в массив вместе во всеми пробелами. Можно ли дальше в этом массиве находить отдельные слова (находяшиеся в отдельных маленьких массивах)? Добавлено через 16 минут cо всеми* Поправочка=) Добавлено через 38 минут -----Up!-----
C++ Вывод русских символов в консоль Чтобы выводить русские буквы в консоли, написал функцию rustext() #include<iostream> using namespace std; #include<windows> char rustext(char str) { http://www.cyberforum.ru/cpp-beginners/thread111235.html
C++ Описать структуру с именем WORKER
Помогите пожалуйста: 1: Описать структуру с именем WORKER, содержащую следующие поля: -NAME - фамилия и инициалы паботника; -POS -название должности; -YEAR - год поступления на работу; Написать программу, выполняющую следующие действия: -ввод с клавиатуры данных в массив TABL, состоявший из 10 структур типа WORKER; Записи должны быть размещены по алфавиту. -вывод на дисплей фамилий...
Переменные,значение функции,вспомогательные переменные. C++
1)Даны переменные A,B,C.Изменить их значения,переместив их содержимое из A-в B,B-в C,C-в A,и вывести новые значения переменных A,B,C. 2)Найти значение функции 3x(в шестой степени)-6x(во второй степени)-7 при данном значении x. 3)Дано число А.Вычислить A(в восьмой степени),используя вспомогательную переменную и три операции умножения.Для этого последовательно нужно находить A(во второй...
C++ Maccив двумерный http://www.cyberforum.ru/cpp-beginners/thread111199.html
Дан двумерный массив.Сформировать одномерный массив, каждый элемент которого равен произведению четных положительных элементов соотв. столбца! помогите срочно надо:(
C++ Вычислить z-сумму значений функций 1.Подсчитать количество элементов матриц x(5,5) и y(4,6), удовлетворяющих условию 0<=xij<=1 и 0<=yij<=1 2.Вычислить z-сумму значений функций http://www.cyberforum.ru/attachment.php?attachmentid=25489&stc=1&d=1270049144 где F(u,t) http://www.cyberforum.ru/attachment.php?attachmentid=25489&stc=1&d=1270049144 , а – любое число Заранее спасибо подробнее

Показать сообщение отдельно
Сыроежка
Заблокирован
02.08.2011, 00:12     Поиск 2-х наибольших чисел
Во-первых, я бы хотел отметить, что предложенные в начале варианты страдают "детской болезнью", когда начальным значениям максимумов присвоены нули. Так как рассматривается последовательность целых чисел, то вполне возможно, что все члены последовательности будут отрицательными, а тогда значение 0 для максимумов очевидно будет неверным.
Во-вторых, задачу следует переформулировать более корректно, то есть найти номера членов последовательности для двух максимальных элементов.

Вообще-то, здача решается очень просто! Нужно для первого максимума использовать строгое неравенство при сравнении максимума и очередного элемента. А для второго максимума использовать не строгое неравенство. То есть для первого максимума max1 использовать конструкцию

if ( max1 < element ) max1 = element;

А для второго максимума max2 использовать конструкцию

if ( max2 <= element ) max2 = element;

Тогда будет найден первый максимум в последовательности и последний максимум в последовательности.

Если писать свой алгоритм, то для первого максимума можно использовать стандартный предикат std::less, а для второго std::less_equal.

Прототип шаблона собственного алгоритма для этих целей может выглядеть так

template <typename InputIterator>

std:air<typename std::iterator_traits<InputIterator, typename std::traits<InputIterator>
two_max( InputIterator first, InputIterator last );

Добавлено через 2 минуты
Во-первых, я бы хотел отметить, что предложенные в начале варианты страдают "детской болезнью", когда начальным значениям максимумов присвоены нули. Так как рассматривается последовательность целых чисел, то вполне возможно, что все члены последовательности будут отрицательными, а тогда значение 0 для максимумов очевидно будет неверным.
Во-вторых, задачу следует переформулировать более корректно, то есть найти номера членов последовательности для двух максимальных элементов.

Вообще-то, здача решается очень просто! Нужно для первого максимума использовать строгое неравенство при сравнении максимума и очередного элемента. А для второго максимума использовать не строгое неравенство. То есть для первого максимума max1 использовать конструкцию

if ( max1 < element ) max1 = element;

А для второго максимума max2 использовать конструкцию

if ( max2 <= element ) max2 = element;

Тогда будет найден первый максимум в последовательности и последний максимум в последовательности.

Если писать свой алгоритм, то для первого максимума можно использовать стандартный предикат std::less, а для второго std::less_equal.

Прототип шаблона собственного алгоритма для этих целей может выглядеть так

template <typename InputIterator>

C++
1
2
std::pair<typename std::iterator_traits<InputIterator>::value_type, typename std::traits<InputIterator>::value_type>
two_max( InputIterator first, InputIterator last );
 
Текущее время: 22:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru