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

Отсортировать массив, введенный с клавиатуры - C++

Восстановить пароль Регистрация
 
soldman
0 / 0 / 0
Регистрация: 02.10.2013
Сообщений: 19
20.01.2014, 23:00     Отсортировать массив, введенный с клавиатуры #1
1.заполнить массив с клавиатуры где n < 100.( это просто).
2.Отсортировать на возрастание (тоже просто)
Но вот вывести 5 максимум массива-вот это как? Объясните пожалуйста.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.01.2014, 23:00     Отсортировать массив, введенный с клавиатуры
Посмотрите здесь:

Вычислить y= k14− 18 k для 6 значений k, вводимых с клавиатуры. Результат вычислений записать в массив. Полученный массив отсортировать по возрастанию C++
Проверить, является ли введенный с клавиатуры символ знаком препинания C++
C++ Определить количество элементов последова-тельности, не попадающих во введенный с клавиатуры интервал
Дан одномерный массив,введенный с клавиатуры C++
C++ Написать программу которая проверяет введенный с клавиатуры массив имеющий возрастающую последовательность
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
20.01.2014, 23:05     Отсортировать массив, введенный с клавиатуры #2
Смотри найти максимум можешь?
Второй будет тоже максимум но он должен быть либо меньше первого либо его позиция отлична от него.
аналогично и 3 и 4 и 5
_script_
169 / 137 / 34
Регистрация: 01.05.2012
Сообщений: 414
20.01.2014, 23:11     Отсортировать массив, введенный с клавиатуры #3
Цитата Сообщение от soldman Посмотреть сообщение
Но вот вывести 5 максимум массива-вот это как?
Возможно, имеется ввиду 5 самых больших чисел массива)
Если так, то вывести после сортировки 5 последних чисел
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
20.01.2014, 23:17     Отсортировать массив, введенный с клавиатуры #4
Цитата Сообщение от _script_ Посмотреть сообщение
Если так, то вывести после сортировки 5 последних чисел
Точно, либо мой вариант каждый последующий максимум меньше предыдущего (если они должны быть различны)
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
20.01.2014, 23:32     Отсортировать массив, введенный с клавиатуры #5
soldman, Выводим 5 максимальный элемент
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <vector>
#include<algorithm>
int main()
{
    int N;
    std::cin>>N;
    std::vector<int> vec(N);
    for(std::vector<int>::iterator it = vec.begin();it!=vec.end();it++)
        std::cin>>*it;
    for(int i=0;i<4;i++)
        vec.erase(std::max_element(vec.begin(),vec.end()));
    std::cout<<"Fifth maximum element = "<<*std::max_element(vec.begin(),vec.end());
    return 0;
}
Добавлено через 5 минут
2.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <vector>
#include<algorithm>
int main()
{
    int N;
    std::cin>>N;
    std::vector<int> vec(N);
    for(std::vector<int>::iterator it = vec.begin();it!=vec.end();it++)
        std::cin>>*it;
    std::sort(vec.begin(), vec.end(), std::greater<int>());
    std::cout<<*(vec.begin()+4);
    return 0;
}
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,399
21.01.2014, 03:41     Отсортировать массив, введенный с клавиатуры #6
Цитата Сообщение от soldman Посмотреть сообщение
2.Отсортировать на возрастание (тоже просто)
Но вот вывести 5 максимум массива-вот это как? Объясните пожалуйста.
учитывая, что массив отсортирован по возрастанию, то это просто 5 крайних с конца элементов.
Ev_Hyper
 Аватар для Ev_Hyper
1805 / 1626 / 435
Регистрация: 15.12.2013
Сообщений: 5,774
23.01.2014, 16:28     Отсортировать массив, введенный с клавиатуры #7
cooller_94, VS12 ругается на:
C++
1
std::greater<int>()
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
23.01.2014, 16:33     Отсортировать массив, введенный с клавиатуры #8
Ev_Hyper, Ну не знаю(
У меня в VS10 и CodeBlocks все запускается
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,399
23.01.2014, 17:13     Отсортировать массив, введенный с клавиатуры #9
C++
1
#include <functional>
Ev_Hyper
 Аватар для Ev_Hyper
1805 / 1626 / 435
Регистрация: 15.12.2013
Сообщений: 5,774
23.01.2014, 17:57     Отсортировать массив, введенный с клавиатуры #10
Теперь выбивает такую ошибку(код №2):

Код
Expression: vector iterator not dereferencable

For information on how your program can cause an assertion
failure, see the Visual C++ documentation on asserts.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,399
23.01.2014, 18:12     Отсортировать массив, введенный с клавиатуры #11
Попробуйте
C++
1
vec.at(4);
заместо 12 строки.
Ev_Hyper
 Аватар для Ev_Hyper
1805 / 1626 / 435
Регистрация: 15.12.2013
Сообщений: 5,774
23.01.2014, 18:44     Отсортировать массив, введенный с клавиатуры #12
непомогло, теперь пишет
Код
First-chance exception at 0x765EB9BC in C+onsoleApplication8.exe: Microsoft C++ exception: std::out_of_range at memory location 0x002AF41C.
Unhandled exception at at 0x765EB9BC in C+onsoleApplication8.exe: Microsoft C++ exception: std::out_of_range at memory location 0x002AF41C.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,399
23.01.2014, 19:29     Отсортировать массив, введенный с клавиатуры #13
Ev_Hyper, значит вводите N меньше 5
Ev_Hyper
 Аватар для Ev_Hyper
1805 / 1626 / 435
Регистрация: 15.12.2013
Сообщений: 5,774
24.01.2014, 17:14     Отсортировать массив, введенный с клавиатуры #14
Точно, сразу и не заметил
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
24.01.2014, 17:51     Отсортировать массив, введенный с клавиатуры #15
А почему в этой теме активно используют stl, но никто не посоветовал partial_sort или nth_element?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.01.2014, 20:18     Отсортировать массив, введенный с клавиатуры
Еще ссылки по теме:

Отсортировать массив по убыванию, затем добавить недостающий элемент и отсортировать массив по возрастанию C++
Не выводит список введенный с клавиатуры C++
Написать программу, которая методом обмена "пузырька" сортирует по убыванию введенный с клавиатуры одномерный массив C++

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

Или воспользуйтесь поиском по форуму:
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,399
24.01.2014, 20:18     Отсортировать массив, введенный с клавиатуры #16
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
А почему в этой теме активно используют stl, но никто не посоветовал partial_sort или nth_element?
ну наверное поэтому
Цитата Сообщение от soldman Посмотреть сообщение
Отсортировать на возрастание
толк от них, если все равно искать нужно в отсортированной последовательности?
Yandex
Объявления
24.01.2014, 20:18     Отсортировать массив, введенный с клавиатуры
Ответ Создать тему
Опции темы

Текущее время: 05:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru