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

Найти число элементов массива, которые больше своих “соседей” - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.93
валентин777
0 / 0 / 0
Регистрация: 01.06.2011
Сообщений: 45
26.08.2011, 19:25     Найти число элементов массива, которые больше своих “соседей” #1
Найти число элементов массива, которые больше своих “соседей”, т.е. предшествующего и последующего элементов.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.08.2011, 19:25     Найти число элементов массива, которые больше своих “соседей”
Посмотрите здесь:

Найти сумму элементов массива, которые больше своих "соседей" справа и слева C++
C++ Вывести на экран те элементы списка, которые больше своих соседей
Вывести количество элементов массива, которые строго больше обоих своих соседей (исправить) C++
C++ Найти номера тех элементов массива, которые больше своего правого соседа, и количество таких элементов
Найти произведение элементов, которые больше за первый элемент массива C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Overmind024
99 / 99 / 6
Регистрация: 10.09.2010
Сообщений: 267
27.08.2011, 10:59     Найти число элементов массива, которые больше своих “соседей” #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
#include <iostream>
#include <vector>
#include <iterator>
#include <algorithm>
 
using namespace std;
 
 
int main()
{
    vector<int> v;
    cout << "Enter sequence end by (Ctrl+Z)" << endl;
    copy(istream_iterator<int>(cin),istream_iterator<int>(),back_inserter(v));
 
    if(v.empty())
    {
        cout << "Vector is empty!" << endl;
    }
    else
    {
        size_t count = v.size();
        for(vector<int>::iterator i = v.begin();i != v.end(); --count )
        {
            i = adjacent_find(i,v.end());
            i = (i == v.end())?i:++i;
        }
 
        cout << "count = " << count*2 << endl;
    }
 
    system("pause");
 
    return 0;
}
валентин777
0 / 0 / 0
Регистрация: 01.06.2011
Сообщений: 45
27.08.2011, 16:34  [ТС]     Найти число элементов массива, которые больше своих “соседей” #3
А На простом С можно ???????????
Сыроежка
Заблокирован
27.08.2011, 20:56     Найти число элементов массива, которые больше своих “соседей” #4
Цитата Сообщение от Overmind024 Посмотреть сообщение
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
#include <iostream>
#include <vector>
#include <iterator>
#include <algorithm>
 
using namespace std;
 
 
int main()
{
    vector<int> v;
    cout << "Enter sequence end by (Ctrl+Z)" << endl;
    copy(istream_iterator<int>(cin),istream_iterator<int>(),back_inserter(v));
 
    if(v.empty())
    {
        cout << "Vector is empty!" << endl;
    }
    else
    {
        size_t count = v.size();
        for(vector<int>::iterator i = v.begin();i != v.end(); --count )
        {
            i = adjacent_find(i,v.end());
            i = (i == v.end())?i:++i;
        }
 
        cout << "count = " << count*2 << endl;
    }
 
    system("pause");
 
    return 0;
}
Ваша программа к поставленной задаче вообще никакого отношения не имеет.
Sahon
10 / 10 / 1
Регистрация: 09.04.2010
Сообщений: 141
27.08.2011, 21:46     Найти число элементов массива, которые больше своих “соседей” #5
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#define LENGTH 80
 
main(){
 
int array[LENGTH] = {1, 5, 6, 3, 12, 36, 87, 91, 34, 85},
counter = 0;
 
for (int n = 1; n < LENGTH-1; n++)
if (array[n] > array[n-1] && array[n] > array[n+1])
counter++;
 
printf("%d", counter);
 
return 0;
}
Добавлено через 15 минут
При желании можно автоматизировать ввод элементов массива... словом, сделать красиво.
P.S. Массив из 80 элементов. По этому все элементы после 85 равны нулю. Из-за этого counter == 3.
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
27.08.2011, 21:58     Найти число элементов массива, которые больше своих “соседей” #6
Sahon, тогда уж так
C++
1
2
3
4
if (array[n] > array[n-1] && array[n] > array[n+1]) {
counter++;
n++;
}
Sahon
10 / 10 / 1
Регистрация: 09.04.2010
Сообщений: 141
27.08.2011, 22:00     Найти число элементов массива, которые больше своих “соседей” #7
Цитата Сообщение от kravam Посмотреть сообщение
Sahon, тогда уж так
C++
1
2
3
4
if (array[n] > array[n-1] && array[n] > array[n+1]) {
counter++;
n++;
}
А зачем n++? Оно есть в for.
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
27.08.2011, 22:03     Найти число элементов массива, которые больше своих “соседей” #8
А затем, что если найдено число, которое больше своих соседей, то следующее число не может быть таковым. Значит, его можно смело перепрыгнуть. Для этого вводится дополнительное n++
(Без этого мы будем иметь лишнюю проверку условия. Лишнюю потому, что условие заведомо ложно)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.08.2011, 22:04     Найти число элементов массива, которые больше своих “соседей”
Еще ссылки по теме:

В целочисленном массиве найти наибольший элемент среди элементов меньше своих соседей C++
C++ Определить сколько чисел больше своих “соседей”
C++ Определить сколько из чисел больше своих соседей

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

Или воспользуйтесь поиском по форуму:
Sahon
10 / 10 / 1
Регистрация: 09.04.2010
Сообщений: 141
27.08.2011, 22:04     Найти число элементов массива, которые больше своих “соседей” #9
Цитата Сообщение от kravam Посмотреть сообщение
А затем, что если найдено число, которое больше своих соседей, то следующее число не может быть таковым. Значит, его можно смело перепрыгнуть. Для этого вводится дополнительное n++
(Без этого мы будем иметь лишнюю проверку условия. Лишнюю потому, что условие заведомо ложно)
Тогда да.
Yandex
Объявления
27.08.2011, 22:04     Найти число элементов массива, которые больше своих “соседей”
Ответ Создать тему
Опции темы

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