Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.93
валентин777
0 / 0 / 0
Регистрация: 01.06.2011
Сообщений: 45
#1

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

26.08.2011, 19:25. Просмотров 2459. Ответов 8
Метки нет (Все метки)

Найти число элементов массива, которые больше своих “соседей”, т.е. предшествующего и последующего элементов.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.08.2011, 19:25
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Найти число элементов массива, которые больше своих “соседей” (C++):

Сформировать вектор М из элементов массива А, которые больше своих соседей - C++
Дан массив А(n), n <= 15, целого типа. Сформировать вектор М из элементов А, которые больше своих соседей, то есть ai > ai-1 и ai > ai+1....

Найти сумму элементов массива, которые больше своих "соседей" справа и слева - C++
В массиве из N элементов найти сумму тех элементов, которые больше своих "соседей" справа и слева.

Вывести количество элементов массива, которые строго больше обоих своих соседей (исправить) - C++
Сначала задано число N — количество элементов в массиве (1N100). Далее через пробел записаны N чисел — элементы массива. Формат...

Выбрать из массива элементы, которые в 2 раза больше своих соседей - C++
Дан массив a, сформировать новый массив состоящий из элементов в 2 раза больше предыдущего и следующего |2|4|2|3|6|3| -> |4|6|

Перегруженные функции вычисляющие количество элементов, которые больше своих соседей - C++
Написать реализации перегруженных функций: int func(double* arr, int length); int func(char* str); Функция func возвращает количество...

Вывести на экран те элементы списка, которые больше своих соседей - C++
Дан список из n целых чисел a1,a2,..,an. Вывести на экран те элементы списка, которые больше своих соседей. Заранее спасибо за помощь!

8
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;
}
1
валентин777
0 / 0 / 0
Регистрация: 01.06.2011
Сообщений: 45
27.08.2011, 16:34  [ТС] #3
А На простом С можно ???????????
0
Сыроежка
Заблокирован
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;
}
Ваша программа к поставленной задаче вообще никакого отношения не имеет.
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.
0
kravam
быдлокодер
1705 / 892 / 45
Регистрация: 04.06.2008
Сообщений: 5,524
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++;
}
1
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.
0
kravam
быдлокодер
1705 / 892 / 45
Регистрация: 04.06.2008
Сообщений: 5,524
27.08.2011, 22:03 #8
А затем, что если найдено число, которое больше своих соседей, то следующее число не может быть таковым. Значит, его можно смело перепрыгнуть. Для этого вводится дополнительное n++
(Без этого мы будем иметь лишнюю проверку условия. Лишнюю потому, что условие заведомо ложно)
1
Sahon
10 / 10 / 1
Регистрация: 09.04.2010
Сообщений: 141
27.08.2011, 22:04 #9
Цитата Сообщение от kravam Посмотреть сообщение
А затем, что если найдено число, которое больше своих соседей, то следующее число не может быть таковым. Значит, его можно смело перепрыгнуть. Для этого вводится дополнительное n++
(Без этого мы будем иметь лишнюю проверку условия. Лишнюю потому, что условие заведомо ложно)
Тогда да.
0
27.08.2011, 22:04
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.08.2011, 22:04
Привет! Вот еще темы с ответами:

В целочисленном массиве найти наибольший элемент среди элементов меньше своих соседей - C++
Здравствуйте! Помогите, пожалуйста, с задачей: в целочисленном массиве найти наибольший элемент среди элементов меньше своих соседей.

Определить сколько из чисел больше своих соседей - C++
имеется последовательность чисел, содержащая n элементов.определить сколько из них больше своих соседей. код на c++ пожалуйста )

Определить сколько чисел больше своих “соседей” - C++
Задача 2. Дано 20 целых чисел. Определить сколько из них больше своих “соседей”, т.е. преидущего и последуещего.

Массив: Определить, сколько из них больше своих «соседей», те предыдущего и последующего - C++
2. Дано 20 целых чисел. Определить, сколько чисел в последовательности больше своих «соседей», т.е. предыдущего и последующего.


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru