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

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

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

Максимум в массиве C++
Максимум в матрице C++
найти максимум из x[1]...x[n] C++
максимум C++
максимум и минимум C++
C++ Найти максимум
найти максимум C++
Среди введенных четных чисел найдите максимум (М1), также найдите максимум (М2) среди нечетных чисел C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SummerRain
 Аватар для SummerRain
325 / 324 / 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;
}
Yandex
Объявления
01.02.2013, 14:46     Локальний максимум
Ответ Создать тему
Опции темы

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