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

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

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

Возникли проблемы с решением, без использования доп. массива.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.12.2012, 19:28     Замена локальных максимумов на "0"
Посмотрите здесь:

число локальных максимумов C++
C++ Поменять знак всех локальных максимумов данной матрицы на противоположный.
C++ Найти "max" среди всех локальных минимумов данной матрицы
C++ Найти минимальный из локальных максимумов массива
Поменять знак всех локальных максимумов данной матрицы на противоположный C++
При нахождении количества локальных максимумов в последовательности for_each возвращает ноль C++
C++ В массиве найти и напечатать номера (индексы) локальных максимумов (Прокомментировать код)
C++ Замена "," в файле на "."

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
27.12.2012, 19:53     Замена локальных максимумов на "0" #2
В голову только такое пришло:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <iterator>
#include <vector>
#include <algorithm>
 
int main()
{
    setlocale (LC_ALL, "Russian");
    
    std::cout<<"Вводите числа мвссива(любая буква для остановки):\n";
    std::vector<int> v( (std::istream_iterator<int>(std::cin)), std::istream_iterator<int>());
    for (size_t i = 1; i<v.size()-1; ++i)
    {
        if (v[i]>v[i-1] && v[i]>v[i+1]) v[i] = 0;
    }
    for (const int& val : v) std::cout<<val<<" ";
    std::cout<<"\n";
    system("pause");
    return 0;
}
akaDem
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 16
27.12.2012, 19:54  [ТС]     Замена локальных максимумов на "0" #3
В вашем решении, он меняет значения по ходу и где уже есть 0 со следующим и предидущим числом будет ошибка т.к. оно уже будет заменено на 0.
Yandex
Объявления
27.12.2012, 19:54     Замена локальных максимумов на "0"
Ответ Создать тему
Опции темы

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