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

Заменить все локальные максимумы на 0 - C++

Восстановить пароль Регистрация
 
akaDem
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 16
13.01.2013, 14:28     Заменить все локальные максимумы на 0 #1
Заполнить массив n целых чисел числами из потока ввода. Дополнительного массива не использовать. Заменить все локальные максимумы (т.е. элементы превышающие своих соседей справа и слева) на 0.

Пример
Ввод
1 4 3 2 1
вывод
1 0 3 2 1

Подскажите пожалуйста, буду благодарен

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
using namespace std;
 
 
 
int main()
{
    int n,N[1001],t;
    cout <<"Vvedite kol-vo elementov N"<< endl;
 
    cin >>n;
    cout << endl;
    cout <<"Vvodiete elementy posledovatel'nosti"<< endl;
 
    for(int i=1; i<=n; i++)
    {
        cin>>N[i];
    }
 
    for(int i=2; i<=n; i++)
 
    {
     if (N[i]>N[i+1] && N[i]>N[i-1])
        {
 
        Не могу придумать условие
 
        }
     cout<<N[i-1]<<" ";
    }
    cout<<N[n]<<" ";
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.01.2013, 14:28     Заменить все локальные максимумы на 0
Посмотрите здесь:

Вывести все локальные максимумы массива C++
Заменить все локальные минимумы данной матрицы на нули C++
C++ Заменить все локальные минимумы данной матрицы M × N на нули.
заменить максимумы нулями C++
Матрицы: все локальные минимумы заменить на 0, матрицу читать с файла C++
C++ Дан список, переместить локальные максимумы
Как найти локальные максимумы? C++
Найти все локальные минимумы и максимумы в заданном массиве C++
Заменить все локальные минимумы и максимумы данной матрицы на 0 C++
Найти все локальные минимумы массива A[1…20] C++
C++ Возвести в квадрат все локальные минимумы заданного массива
Найти локальные максимумы с++ C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
v.a.l.i.d
 Аватар для v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
13.01.2013, 14:33     Заменить все локальные максимумы на 0 #2
Мне кажется что здесь нужен еще один массив, копия. Например, есть вот это:

Ввод
1 4 3 2 1

Если прямо в нем менять локальные максимумы на 0, то получится вот это
1 0 0 0 1

а должно быть:
1 0 3 2 1
akaDem
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 16
13.01.2013, 14:37  [ТС]     Заменить все локальные максимумы на 0 #3
Я согласен с вами, но в условии указано то, что нельзя использовать доп. массив. Возможно можно что-то сделать с помощью доп. переменных, но у меня не получилось
Nick Alte
Эксперт С++
1594 / 986 / 117
Регистрация: 27.09.2009
Сообщений: 1,902
Завершенные тесты: 1
13.01.2013, 14:43     Заменить все локальные максимумы на 0 #4
Если условием для локального максимума (ЛМ) является, чтобы он был строго больше соседей (не больше или равен), то очевидно, что два ЛМ не могут быть соседями. Значит, обнулив очередной ЛМ, через его соседа можно перескочить.
akaDem
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 16
13.01.2013, 14:46  [ТС]     Заменить все локальные максимумы на 0 #5
Огромное вам спасибо!
Yandex
Объявления
13.01.2013, 14:46     Заменить все локальные максимумы на 0
Ответ Создать тему
Опции темы

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