не могу вывести массив большие своих соседей справа и слева
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
setlocale(LC_ALL, "Rus");
srand(time(NULL));
int const DOR = 20;
double arr[DOR];
int i, a = 0, b = 10;
for (int i = 0; i < DOR; i++)
{
arr[i] = (double)rand() * (b - a) / RAND_MAX + a;
}
for (int i = 0; i < DOR; i++)
{
printf("%6.2lf \r \n", arr[i]);
}
for (int i = 0; i < DOR; i++)
{
if ((arr[i] > arr[i - 1]) && (arr[i] > arr[i + 1]))
{
printf("%6.2lf \r \n", arr[i]);
}
}
}
само задание :
Сформировать с помощью датчика случайных чисел в диапазоне [0,10] массив из 20 элементов вещественного типа. Вывести его на экран. Вывести элементы массива, большие своих соседей справа и слева.
Ответы (1 шт):
Автор решения: Zhihar
→ Ссылка
вам надо найти элементы массива arr[i], такие, что
(arr[i] > arr[i - 1]) && (arr[i] > arr[i + 1])
вот и все
ну естественно ни первый ни последний элементы массива не могут быть выбраны, так что цикл будет от 1 до DOR - 1
for (int i = 1; i < DOR - 1; i++)
{
if ((arr[i] > arr[i-1]) && (arr[i] > arr[i+1]))
{
printf("%6.2lf \r \n", arr[i]);
}
}