Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/75: Рейтинг темы: голосов - 75, средняя оценка - 5.00
0 / -1 / 0
Регистрация: 16.07.2017
Сообщений: 33
1

В массиве определить количество элементов, у которых оба соседних элемента меньше данного

20.07.2017, 19:40. Показов 15624. Ответов 12
Метки нет (Все метки)

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

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

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

Примеры
входные данные
5
1 2 3 4 5

выходные данные
0
входные данные
5
1 5 1 5 1

выходные данные
2
Вот мой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <algorithm>
#include <math.h>
using namespace std;
int main()
{
    int a[100];
    int n;
    int c=0;
    cin>>n;
    for(int i=0;i<n;i++)
    cin>>a[i];
    for(int i=0;i<n;i++)
    if(a[i]>a[i-1]&& a[i]>a[i+1])
    c++;
    cout<<c;
 
    return 0;
}
Выдает неправильный ответ на пару тестов
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.07.2017, 19:40
Ответы с готовыми решениями:

Определить количество элементов массива, у которых два соседних элемента меньше заданного
Дан массив, состоящий из целых чисел. Напишите программу, которая в данном массиве определит...

Определить количество таких элементов в массиве, для которых предыдущий элемент меньше
Программа заполняет одномерный массив из 20 элементов случайными цифрами в диапазоне от -5 до 10 и...

Определить количество элементов, значения которых меньше модуля последнего отрицательного элемента массива
В одномерном числовом массиве x определить количество элементов, значения которых меньше...

Определить количество элементов массива, значения которых меньше, чем значение первого элемента
Помогите решить задачу плиз.Дан одномерный массив действительных чисел.Найти в нём количество...

12
1466 / 1174 / 551
Регистрация: 08.01.2012
Сообщений: 4,524
20.07.2017, 19:45 2
Цитата Сообщение от colya20171 Посмотреть сообщение
for(int i=1;i<n-1;i++)
...
0
0 / -1 / 0
Регистрация: 16.07.2017
Сообщений: 33
20.07.2017, 19:54  [ТС] 3
Неверно, еще меньше тестов прошло
0
4 / 4 / 3
Регистрация: 27.11.2016
Сообщений: 59
20.07.2017, 19:59 4
Прикрепи тесты, на которых прога ломается. И фигурные скобки не пробовал поставить в циклах?
0
0 / -1 / 0
Регистрация: 16.07.2017
Сообщений: 33
20.07.2017, 20:03  [ТС] 5
В том то и проблема, тесты закрытые.
0
1466 / 1174 / 551
Регистрация: 08.01.2012
Сообщений: 4,524
20.07.2017, 20:03 6
Цитата Сообщение от colya20171 Посмотреть сообщение
Неверно, еще меньше тестов прошло
я свое исключительно для 2-го цикла высылал
1
4 / 4 / 3
Регистрация: 27.11.2016
Сообщений: 59
20.07.2017, 20:05 7
Лучший ответ Сообщение было отмечено colya20171 как решение

Решение

ты за границы интересующего тебя массива вылезаешь, ты должен проверять от 1 до n - 2 индексов. В остальных ячейках мусор лежит.
0
1472 / 1188 / 820
Регистрация: 29.02.2016
Сообщений: 3,579
20.07.2017, 20:07 8
попробуйте так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
int main()
{
    int n;
    int c = 0;
    cin >> n;
    int*a = new int[n];
    for (int i = 0; i<n; i++)
        cin >> a[i];
    for (int i = 1; i<n-1; i++)
        if (a[i]>a[i - 1] && a[i]>a[i + 1])
            c++;
    cout << c;
 
    return 0;
}
1
0 / -1 / 0
Регистрация: 16.07.2017
Сообщений: 33
20.07.2017, 20:08  [ТС] 9
Да, спасибо так работает.
Не могли бы вы объяснить, почему не работал мой код? А то понять хочется.
0
4 / 4 / 3
Регистрация: 27.11.2016
Сообщений: 59
20.07.2017, 20:11 10
Прочитай на 2 сообщения вверх
1
зомбяк
1556 / 1195 / 339
Регистрация: 14.05.2017
Сообщений: 3,882
20.07.2017, 20:13 11
потому что a[0-1] и a[n-1+1] - это вне массива
0
0 / -1 / 0
Регистрация: 16.07.2017
Сообщений: 33
20.07.2017, 20:18  [ТС] 12
cпасибо
0
0 / 0 / 0
Регистрация: 08.12.2018
Сообщений: 1
08.12.2018, 13:54 13
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <cmath>
using namespace std;
 
int main () {
    int x, c=0;
    cin >> x;
        int a[x];
    for (int i=0; i < x; ++i){
      cin >> a[i];
    }
    for (int i = 1; i<x-1; i++)
        if (a[i]>a[i - 1] && a[i]>a[i + 1])
            c++;
    cout << c;
 
    return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.12.2018, 13:54

Определить количество строк в двумерном массиве, среднее арифметическое элементов которых меньше заданной величины
Дан целочисленный прямоугольный массив. Определить количество строк, среднее арифметическое...

Определить количество таких элементов в массиве, для которых предыдущий элемент меньше, а последующий - больше
Программа заполняет одномерный массив из 20 элементов случайными цифрами в диапазоне от -5 до 10....

Найти количество элементов, величина которых меньше среднего арифметического соседних с ним
Дано линейная таблица, содержащая N вещественных чисел. Составить алгоритм определения количества...

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru