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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.11.2013, 19:15   #1
Alex_Dep
Пользователь
 
Регистрация: 18.01.2012
Сообщений: 26
Сообщение поиск наибольших чисел в одномерном массиве

Здравствуйте, мне задали задачу найти 5 наибольших в одномерном массиве на С++. Я смог написать программу для поиска одного наибольшего, помогите найти несколько
вот программный код:
Код:
#include "stdafx.h"
#include "conio.h"
#include <iostream>
#include <locale.h>
using namespace std;
int main()
{
	setlocale(LC_ALL, "Russian");
	setlocale(LC_ALL, "rus");
    int N;
    cout << "Введите размер: ";
    
    int * m = new int[N];
    cin >> N;
    
    for(int i = 0; i < N; ++i)
    {
        cout << "Введите число [" << i+1 << "]: ";
        cin >> m[i];
    }
    
    int max;
    max = m[0];
    
    for(int i = 1; i < N; ++i)
    {
        if(m[i] > max)
            max = m[i];
    }
     
    cout << "Наибольший элемен = " << max << "\n";
	getchar();
	getchar();
    delete [] m;
  
    return 0;
}

Последний раз редактировалось Alex_Dep; 17.11.2013 в 19:52.
Alex_Dep вне форума Ответить с цитированием
Старый 17.11.2013, 22:51   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

отсортируйте массив по убыванию и возьмите первые 5 элементов - это и будет ответом задачи.

p.s. сортировать можно любым удобным для вас алгоритмом.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.11.2013, 23:21   #3
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Alex_Dep

найти 5 наибольших в одномерном массиве на С++

например так

Код:
#include <iostream>
#include <vector>
#include <locale>
#include <algorithm>
#include <functional>

int main()
{
	std::locale::global(std::locale(""));

	std::cout << "Введите количество элементов, насяльника!" << std::endl;
	size_t N;
	std::cin >> N;
	std::vector<int> v(N);
	
	std::cout << "Теперь введите сами элементы, насяльника!" << std::endl;
	for (size_t i=0; i<N; i++)
		std::cin >> v[i];
	
	std::sort(v.begin(), v.end(), std::greater<int>());

	std::cout << "Первые 5 наибольших элементов, насяльника!" << std::endl;
	size_t limit = (std::min)(5u, v.size());
	for (size_t i=0; i<limit; i++)
		std::cout << v[i] << " ";	

	return 0;
}
Rififi вне форума Ответить с цитированием
Старый 18.11.2013, 12:33   #4
Alex_Dep
Пользователь
 
Регистрация: 18.01.2012
Сообщений: 26
По умолчанию

спасибо большое!
Alex_Dep вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск числа дубликатов в одномерном массиве AnnNoob Помощь студентам 3 24.04.2013 18:15
Бинарный(Двоичный) поиск в одномерном массиве bonjovi Паскаль, Turbo Pascal, PascalABC.NET 1 31.01.2012 17:10
[Pascal] Поиск минимума в одномерном массиве merch Паскаль, Turbo Pascal, PascalABC.NET 7 19.05.2011 02:35
Поиск трех наибольших чисел в массиве radiokarazinec Общие вопросы Delphi 6 26.12.2010 16:44
Поиск в одномерном массиве Joxter Помощь студентам 6 13.12.2008 14:19