Нужно посчитать произведение элементов массива, расположенных между максимальным и минимальным. Как это сделать? - C#

Узнай цену своей работы

Формулировка задачи:

Нужно посчитать произведение элементов массива, расположенных между максимальным и минимальным по модулю элементами массива.Если макс или мин элементов больше одного, брать первый (по индексу) максимальный и последний (по индексу) минимальный. Вот мой код, но здесь считается по последнему максимальному и минимальному.
namespace test1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("Введите количество элемeнтов массива: ");
            int n = Convert.ToInt32(Console.ReadLine());
            int[] array = new int[n]; //создается массив, длиной n
                                      // Random rand = new Random(); //заполняется случайными числами
            for (int i = 0; i < array.Length; i++)
            {
 
                array[i] = Convert.ToInt32(Console.ReadLine());
                //rand.Next(-10, 10); // случайные числа от -10 до 10
                // Console.WriteLine("{0} ", array[i]);
                // Console.Write("{0}, ", array[i]); //выводится массив
            }
            int min = Math.Abs(array[0]);
            int max = Math.Abs(array[0]);
            int nommin = 0, nommax = 0;
            int s = 0;
            for (int i = 0; i < array.Length; i++)
            {
                if (Math.Abs(min) > Math.Abs(array[i]))
                {
                    min = Math.Abs(array[i]); nommin = i; //находим минимальный элемент и его номер 
                }
                if (Math.Abs(max) < Math.Abs(array[i]))
                {
                    max = Math.Abs(array[i]); nommax = i;//находим максимальный элемент и его номер
                }
                if (array[i] > 0) { s = s + array[i]; }  //считаем сумму положительных элементов
            }
            int pr = 1; //произведение
          for (int i = nommax; i <= nommin; i++)
            {
                pr *= array[i]; // считаем произведение, если сначала стоит максимальный элемент
            }
            for (int i = nommin; i <= nommax; i++)
            {
                pr *= array[i]; //считаем произведение если сначала стоит максимальный элемент
            }
            Console.WriteLine("\nСумма положительных элементов массива=" + s);
            Console.WriteLine("минимальный элемент (по модулю)={0}", min);
            Console.WriteLine("максимальный элемент (по модулю)={0}", max);
            Console.WriteLine("Произведение элементов(между макс и мин)=" + pr);
            Console.ReadLine();
        }
    }
}

Решение задачи: «Нужно посчитать произведение элементов массива, расположенных между максимальным и минимальным. Как это сделать?»

textual
Листинг программы
for (int i = nommax + 1; i < nommin; i++)

Объяснение кода листинга программы

  1. В данном коде используется цикл for, который начинается с i = nommax + 1 и продолжается до i < nommin. Здесь nommax и nommin - это переменные, которые содержат максимальное и минимальное значение массива соответственно.
  2. Переменная i в цикле for используется как индекс для доступа к элементам массива. На каждой итерации цикла i увеличивается на 1.
  3. Внутри цикла for происходит умножение текущего элемента массива на переменную result, которая инициализирована единицей.
  4. После завершения цикла for, переменная result будет содержать произведение всех элементов массива, расположенных между максимальным и минимальным значением.
  5. В конце кода, переменная result выводится на экран с помощью функции printf.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.429 из 5
Похожие ответы