Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
AnAlCH
0 / 0 / 0
Регистрация: 06.01.2018
Сообщений: 28
1

Найти количество элементов массива значения которых больше своих соседей

21.01.2018, 17:00. Просмотров 353. Ответов 9
Метки нет (Все метки)

Одномерный массив задается с клавиатуры.Вывести на экран кол-во значений которые больше своих соседей.
Моё убожество в студию...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int main()
 {
    int N,i;
    cout << "Vvedi kol-vo elementov: ";
    cin >> N;
    int arr[N];
     for(i=0;i<N;i++)
     {
        cout << "Vvod " << i << " elementa: ";
        cin >> arr[i];
     }
     for(i=0;i<N;i++)
     {  
    if(arr[i-1]&&arr[i+1]<arr[i]) 
       {
        cout << arr[i] << endl ;
        }
     }
return 0 ;
}
0
Миниатюры
Найти количество элементов массива значения которых больше своих соседей  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.01.2018, 17:00
Ответы с готовыми решениями:

Посчитать количество элементов массива, которые больше своих соседей
Дан массив. Посчитайте, сколько в нем элементов, которые больше своих соседей. ВХОДНЫЕ ДАННЫЕ...

Определить количество элементов массива, которые больше своих соседей
Дан массив из n элементов. Необходимо вывести количество элементов, которые больше своих «соседей»...

Найти число элементов массива, которые больше своих “соседей”
Найти число элементов массива, которые больше своих “соседей”, т.е. предшествующего и последующего...

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

Найти количество элементов массива, значения которых положительны, и не больше заданного числа
6.Найти количество тех элементов, значения которых положительны и не больше заданного числа,...

9
Байт
Эксперт C
20451 / 12981 / 2728
Регистрация: 24.12.2010
Сообщений: 27,163
21.01.2018, 17:04 2
Цитата Сообщение от AnAlCH Посмотреть сообщение
в студию...
Чуток подправить... Вы зачем-то выводите эти локальные максимумы, а надо из просто посчитать.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int main()
 {
    int N,i, count=0;
    cout << "Vvedi kol-vo elementov: ";
    cin >> N;
    int arr[N];
     for(i=0;i<N;i++)
     {
        cout << "Vvod " << i << " elementa: ";
        cin >> arr[i];
     }
     for(i=0;i<N;i++)
     {  
    if(arr[i-1]<arr[i] && arr[i+1]<arr[i])  // тут тоже была ощибочка
       {
        count++;
        }
     }
   cout << count << endl;
return 0 ;
}
0
AnAlCH
0 / 0 / 0
Регистрация: 06.01.2018
Сообщений: 28
21.01.2018, 17:08  [ТС] 3
Так вот вопрос,как их посчитать?
0
Байт
Эксперт C
20451 / 12981 / 2728
Регистрация: 24.12.2010
Сообщений: 27,163
21.01.2018, 17:11 4
Цитата Сообщение от AnAlCH Посмотреть сообщение
Так вот вопрос,как их посчитать?
А что, код приведенный в посте 2, этого не объясняет?

Добавлено через 1 минуту
Да, еще одна ошибочка. Скопипастил, не посмотрев. В строчке 12
C++
1
 for(i=1 ; i < N-1; i++)
0
21.01.2018, 17:11
AnAlCH
0 / 0 / 0
Регистрация: 06.01.2018
Сообщений: 28
21.01.2018, 17:15  [ТС] 5
Туплю.Спасибо большое!)
0
gogaloh
18 / 26 / 0
Регистрация: 14.03.2015
Сообщений: 721
21.01.2018, 17:18 6
C++
1
 int arr[N];
наверное здесь надо устанавливать динамический массив
0
Байт
Эксперт C
20451 / 12981 / 2728
Регистрация: 24.12.2010
Сообщений: 27,163
21.01.2018, 17:31 7
Цитата Сообщение от gogaloh Посмотреть сообщение
наверное здесь надо устанавливать динамический массив
С++ допускает такие конструкции. Современные варианты чистого С - тоже. Но можно, да, динамически. И лично мне это больше нравится...
0
Yetty
1838 / 1318 / 943
Регистрация: 18.12.2017
Сообщений: 4,455
21.01.2018, 18:19 8
Байт, случаи a[0]>a[1] и a[N]>a[N-1] учитываются?

Добавлено через 10 минут
вопрос снимается (задачу прочёл как пишет ТС) - по оригиналу задания это не требуется. но требуется ввод действительных чисел.
1
Байт
Эксперт C
20451 / 12981 / 2728
Регистрация: 24.12.2010
Сообщений: 27,163
21.01.2018, 18:31 9
Цитата Сообщение от Yetty Посмотреть сообщение
случаи a[0]>a[1] и a[N]>a[N-1] учитываются?
Нет, в моем коде не учитываются. Но модифицировать код не сложно. Например так
C++
1
2
3
4
5
6
7
for(i=0;i<N;i++) {
    bool r = false;
    if((i>0 && i<N-1 && arr[i-1]<arr[i] && arr[i+1} < arr[i]) r = true;
    if (i==0 && arr[0] > arr[1]) r = true;
    if (i==N-1 && arr[N-1] > arr[N-2]) r = true;
    if (r) count++;
}
Добавлено через 3 минуты
Цитата Сообщение от Yetty Посмотреть сообщение
вопрос снимается
В самом деле снимать его не надо. А надо уточнить понятие соседства. Впрочем, по общепринятому смыслу arr[0] имеет соседа arr[1] и ваше замечание действительно разумно.
0
Yetty
1838 / 1318 / 943
Регистрация: 18.12.2017
Сообщений: 4,455
21.01.2018, 18:45 10
AnAlCH, если не учитываются случаи когда первый элемент больше второго или последний больше предпоследнего - так как в оригинале условия элемент должен быть больше обоих (т.е. двух) - тогда так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;
 
int main()
 {
    int N, i, kol=0;
    cout << "Enter N: ";
    cin >> N;
    double arr[N];
     for(i=0; i<N; i++)
     {
        cout << "arr["<< i <<"]="; cin >> arr[i];
     }
     for(i=1; i<N-1; i++)      
    if(arr[i-1]<arr[i] && arr[i+1]<arr[i]) kol++;      
    cout <<"kol="<<kol;  
    system("pause");
    return 0;
}
0
21.01.2018, 18:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.01.2018, 18:45

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

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

Сформировать вектор М из элементов массива А, которые больше своих соседей
Дан массив А(n), n &lt;= 15, целого типа. Сформировать вектор М из элементов А, которые больше своих...


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

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

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