C/C++

Работа с циклами с++

7. Вводится последовательность из n вещественных чисел. Определить,
сколько из них больше своих соседей, т. е. предыдущего и последующего.
Ну хватит ????
Сергей Корнилов
Сергей Корнилов
2 731
Лучший ответ
#include <iostream>
using namespace std;
int main() {
cout << "n: ";
int n;
cin >> n;
auto count = 0U;
double previous, current, next;
cout << ">>> ";
cin >> previous >> current;
--n;
while (--n > 0) {
cin >> next;
if (current > previous && current > next) ++count;
previous = current;
current = next;
}
cout << "<<< " << count << '\n';
system("pause > nul");
}
Владимир Ивановkarluxxd)) Прекрасно! Вот решение без массива, но именно с последовательностью.
#include
using namespace std;
int main()
{
int size, j = 0, cols = 0;
cin >> size;
int* arr = new int[size+1];

for (int i = 0; i < size; i++)
{
cin >> arr[i];
}

for (int i = 1; i <= size; i++)
{
int oneelement = arr[j];
if (oneelement < arr[i])
{
cout << oneelement << " " << arr[i]<<endl;
cols++;
}
j++;
}
cout << cols;

delete[] arr;
return 0;

}
Завадский Сергей В прошлой программе я чуть-чуть неправильно решил, вот думаю правильная программка
Завадский Сергей И первый if стоит просто так ;|
не знаю как на си это будет
но я бы так реализовал:
Запрос: введите n

Дальше инициация цикла for n
в теле которого будет созданы и введены инпутом переменные в диапазон n+1

дальше инициация цикла сравнения чисел для множества введённых чисел n+-1. создаем переменную для счетчика. Если n1>n0>n2 то добавляем на счетчик 1

Вывод счестчика
Завадский Сергей ух-ты, так всё просто! Спасибо тебе!
Владимир Ивановkarluxxd)) Только первые три числа следует рассмотреть сразу (а при n < 3 ответ ноль).

Как есть — это вариант задачи подсчёта локальных максимумов.
Владимир Ивановkarluxxd)) И, кстати, число после найденного локального максимума само локальным максимумом быть не может, т. к. оно НЕ больше предыдущего.