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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Fobos1994
4 / 4 / 0
Регистрация: 15.04.2011
Сообщений: 274
#1

Локальний максимум - C++

31.01.2013, 21:25. Просмотров 366. Ответов 1
Метки нет (Все метки)

Дан массив размера N. Найти минимальный из его локальных максимумов (локальный максимум - это элемент, который больше любого из своих соседей).
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.01.2013, 21:25     Локальний максимум
Посмотрите здесь:

максимум - C++
найти квадрат максимума из введенных чисел

максимум и минимум - C++
Даны x, y, z. Вычислить a, b, используя приведенные ниже формулы. Получить max(a, b). a=\frac{1+{\sin...

Матрица на максимум - C++
Найти max среди всех элементов тех строк матрицы,которые упорядочены по возрастанию

Найти максимум - C++
здраствуйте,помогите написать программу на dev-c++,с объяснением пожалуста. условие: Ввести три числа и найти наибольшее из...

найти максимум из x[1]...x[n] - C++
нужно сделать ету програму на класах, помогите пожалуста!

Максимум из минимумов - C++
День добрый. Подскажите пожалуйста, что у меня не правильно? 2 день туплю Задана матрица X целых чисел (1 ≤ M, N ≤ 100). Все числа в...

Максимум последовательности - C++
Я не могу понять, почему переменная max = 0 сравнивается со всеми x. Объсните, пожалуйста. #include <iostream> using namespace std; ...

Максимум в массиве - C++
Вводится массив, состоящий из целых чисел. Найти наибольшее среди них. Входные данные Сначала задано число N — количество элементов...

найти максимум - C++
дано целое число N и набор из N целых чисел. найтиномер первого максимального нечетного числа из данного набора. если нечетных нет, вывести...

Максимум в матрице - C++
помагите плиз ...ни как не могу разобрать...с задачей на Турбо Си. Дана квадpатная матpица действительных чисел pазмеpности n (n <=20)....

Максимум в массиве - C++
Найти максимум в массиве иего положение Добавлено через 1 минуту #include <iostream> using namespace std; int main() { int...

Найти максимум - C++
Помогите советом начинающему, не могу понять в чём логическая ошибка. Есть у меня такая функция нахождения максимального числа из 4...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SummerRain
326 / 325 / 17
Регистрация: 16.12.2012
Сообщений: 544
01.02.2013, 14:46     Локальний максимум #2
C++
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
46
47
48
49
50
51
52
53
54
55
56
57
58
// Дан массив размера N. Найти минимальный из его локальных максимумов 
// (локальный максимум - это элемент, который больше любого из своих соседей).
 
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <stdexcept>
 
#define N 20 // задаём размер массива
 
int find(int mas[], int const& size)
{
    bool isMLM = false;
    int MinLocalMax = 0;
    for (int i = 1; i != size - 1; ++i)
    {
        if (mas[i] > mas[i - 1] && mas[i] > mas[i + 1]) {
            MinLocalMax = mas[i];
            isMLM = true;
            break;
        }
    }
    if (isMLM != true)
        throw std::logic_error("there is no local maximum");  // генерируем исключение, если локальных максимумов не нашлось
    for (int i = 1; i != size; ++i)
    {
        if (mas[i] > mas[i - 1] && mas[i] > mas[i + 1] && mas[i] < MinLocalMax)
            MinLocalMax = mas[i];
    }
    return MinLocalMax;
}
 
void show(int const mas[], int const& size)
{
    for (int i = 0; i != size; ++i)
    {
        std::cout << mas[i] << " ";
    }
}
 
int main()
{
    srand((unsigned)time(NULL));
    int mas[N];
    for (int i = 0; i != sizeof(mas)/sizeof(mas[0]); ++i)
    {
        mas[i] = rand() % 100;
    }
    show(mas, sizeof(mas)/sizeof(mas[0]));
    try { 
        int MLM = find(mas, sizeof(mas)/sizeof(mas[0]));
        std::cout << std::endl << MLM << std::endl;
    } catch (std::logic_error e) {
        std::cout << std::endl << e.what() << std::endl;
    }
    system("pause");
    return 0;
}
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru