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

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

Войти
Регистрация
Восстановить пароль
 
akaDem
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 16
#1

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

13.01.2013, 14:28. Просмотров 332. Ответов 4
Метки нет (Все метки)

Заполнить массив 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
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
Эксперт С++
1603 / 995 / 118
Регистрация: 27.09.2009
Сообщений: 1,918
Завершенные тесты: 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
Ответ Создать тему
Опции темы

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