Найти в Дзене

Выводим все локальные максимумы в одномерном массиве. Практика программирования.

Оглавление
Локальный максимум в массиве
Локальный максимум в массиве

Всем Хай! Практика и ещё раз практика. Ты не ты когда не написал и строчки кода. В общем сегодня будет интересная программка из задания по курсу.

У нас есть одномерный массив, в котором нужно найти локальные максимумы чисел. Локальные максимумы это число, у которого слева и справа стоят числа, которые меньше его. А если число стоит с краю, то нужно, чтобы сосед был меньше его. Тогда оно может называться локальным максимум. Погнали, посмотрим код.

Random random = new Random();
int number = 30;
int[] array = new int[number];
Console.Write("Массив - ");
for (int i = 0; i < array.Length; i++)
{
array[i] = random.Next(1,99);
Console.Write(array[i] + " ");
}
Console.WriteLine();
if (array[0] > array[1])
{
Console.WriteLine("\nНачальный, крайний, локальный максимум - " + array[0]);
}
if (array[number - 1] > array[number - 2])
{
Console.WriteLine("\nКонечный, крайний, локальный максимум - " + array[number - 1]);
}
Console.Write("\nЛокальный максимум - ");
for (int i = 1; i < number - 1; i++)
{
if (array[i] > array[i + 1] && array[i] > array[i - 1])
{
Console.Write(array[i] + " ");
}
}
Console.WriteLine();

Сразу указываем, что будем использовать рандом. Чтобы каждый раз генерировать разные данные в массиве. Создаём переменную, которая будет хранить длину нашего массива «int number = 30». И прописываем наш массив. Переходим к циклу.

Для работы с одномерным массивом нужен один цикл, который будем перебирать все значения в массиве. Записываем его по всем правилам из этой статьи. Внутри этого цикла указываем диапазон, из которого будут выбираться значения для массива рандомно «array[i] = random.Next(1,99)» и сразу выводим этот массив в консоли.

Всё, начальную подготовку мы сделали. Теперь выполнение задачи разбиваем на три этапа.

  1. Находим начальный, крайний, локальный максимум.
  2. Находим конечный, крайний, локальный максимум.
  3. Находим остальные все локальные максимумы в массиве.

Естественно будет 3 условия «if» для каждого пункта отдельно.

Первый этап.

Первым делом найдём начальный, крайний, локальный максимум. Для этого в условии «if» пишем, что если первый элемент в массиве больше чем второй элемент в массиве, то это у нас локальный максимум «if (array[0] > array[1])».

И выводим его в консоль. Просто.

Второй этап.

Теперь проверим, является ли последнее значение массива локальным максимумам. Для этого сравним его с элементом, которое стоит пред ним «(array[number - 1] > array[number - 2])».

То есть если у нас 30 элементов в массиве, а отсчёт начинается с 0, то последний будет под номером 29, а предпоследний под номером 28. Тоже ничего сложного. Также если условие соответствует, то вводим это число в консоли.

Третий этап.

Ну а в третьем этапе, чтобы найти остальные локальные максимумы, нужно «пощупать» оставшиеся элементы в массиве. Для этого, естественно, нужно перебрать весь массив. А что перебирает весь массив? Правильно, цикл. Значит, делаем цикл. Но так как мы уже проверили первое значения в цикле, то начинаем проверку сразу со второго индекса «int i = 1». Внутри цикла пишем условия, чтобы значение было больше следующего значения и больше предыдущего значения.

«if (array[i] > array[i+ 1] && array[i] > array[i- 1])»

Если условие совпадает, то выводим его в консоль. И так пока не переберём все элементы массива. Всё.

Находим локальный максимум в одномерном массиве.
Находим локальный максимум в одномерном массиве.

Напишите в комментариях. Это сложно для понимания? Или нужно больше расписывать, чтобы было понятно? Я буду учитывать это при написании следующих статей.

Ну а на этом всё. Послезавтра будет последняя статья с практикой по одномерным массивам, и мы перейдём к двумерным массивам. Так что если вы плаваете в теме массивов, то лучше подписаться на канал и изучить прошлые статьи, начиная с этой. Так как тема двумерных массивов не такая уж и проста как предыдущая. Легко запутаться в индексах. Всем до скорого и терпения!

#it #разработкаигр #программированиеснуля #программированиедляначинающих #какстатьпрограммистом #csharp #сишарп