Передать значение в метод - C#

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

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

Не могу передать в метод MultRange два значения: idMin и idMax из метода MinMaxId. Ведь return я так понимаю может только одно значение передать, а мне нужно два.
static void Main(string[] args)
        {
            Console.Title = "Математические операции с одномерными массивами";
            Console.WriteLine("Введите размерность массива A:");
            int n = Convert.ToInt32(Console.ReadLine());
            double[] array = new double[n];
            InputArray(array);
            SumNegative(array);
            MinMaxId(array);
            MultRange(array);
            Console.WriteLine("\nСортировка элементов массива в порядке возрастания:");
            ArrSort(array);
            PrintArray(array);
            Console.ReadKey();
        }
 
public static void MinMaxId(double[] array)
        {
            double min = array[0];
            double max = array[0];
            int idMin = 0, idMax = 0;
            for (int i = 1; i < array.Length; i++)
            {
                if (array[i] < array[idMin])
                {
                    min = array[i];
                    idMin = i;
                }
                if (array[i] > array[idMax])
                {
                    max = array[i];
                    idMax = i;
                }
            }
            Console.WriteLine("Максимальный элемент A[" + (idMax + 1) + "] = " + max);
            Console.WriteLine("Минимальный элемент A[" + (idMin + 1) + "] = " + min);
        }
 
        public static void MultRange(double[] array, int idMin, int idMax)
        {
            double mult = 1;
            int idStart = Math.Min(idMin, idMax), idEnd = Math.Max(idMin, idMax);
            for (int i = idStart; i <= idEnd; i++)
            {
                mult *= array[i];
                if (array[i] < 0)
                {
                    Console.Write("(" + array[i] + ")");
                    if (i < idEnd)
                    {
                        Console.Write(" * ");
                    }
                }
                if (array[i] >= 0)
                {
                    Console.Write(array[i]);
                    if (i < idEnd)
                    {
                        Console.Write(" * ");
                    }
                }
                if (i == idEnd)
                {
                    Console.WriteLine(" = " + mult);
                }
            }
            Console.WriteLine("Т.е. произведение элементов массива, расположенных между максимальным и \nминимальным элементами = " + mult);
        }

Решение задачи: «Передать значение в метод»

textual
Листинг программы
  static void Main(string[] args)
        {
            Console.Title = "Математические операции с одномерными массивами";
            Console.WriteLine("Введите размерность массива A:");
            int n = Convert.ToInt32(Console.ReadLine());
            double[] array = new double[n];
            InputArray(array);
            SumNegative(array);
            MinMaxId(array);
            MultRange(array, MinMaxId(array));
            Console.WriteLine("\nСортировка элементов массива в порядке возрастания:");
            ArrSort(array);
            PrintArray(array);
            Console.ReadKey();
        }
 
        public static int[] MinMaxId(double[] array)
        {
            double min = array[0];
            double max = array[0];
            int idMin = 0, idMax = 0;
            int[] minmax = new int[2];
            for (int i = 1; i < array.Length; i++)
            {
                if (array[i] < array[idMin])
                {
                    min = array[i];
                    idMin = i;
                }
                if (array[i] > array[idMax])
                {
                    max = array[i];
                    idMax = i;
                }
            }
            minmax[0] = idMin;
            minmax[0] = idMax;
            Console.WriteLine("Максимальный элемент A[" + (idMax + 1) + "] = " + max);
            Console.WriteLine("Минимальный элемент A[" + (idMin + 1) + "] = " + min);
            return minmax;
        }
 
        public static void MultRange(double[] array, int[] minmax)
        {
            double mult = 1;
            int idStart = Math.Min(minmax[0], minmax[1]), idEnd = Math.Max(minmax[0], minmax[1]);
            for (int i = idStart; i <= idEnd; i++)
            {
                mult *= array[i];
                if (array[i] < 0)
                {
                    Console.Write("(" + array[i] + ")");
                    if (i < idEnd)
                    {
                        Console.Write(" * ");
                    }
                }
                if (array[i] >= 0)
                {
                    Console.Write(array[i]);
                    if (i < idEnd)
                    {
                        Console.Write(" * ");
                    }
                }
                if (i == idEnd)
                {
                    Console.WriteLine(" = " + mult);
                }
            }
            Console.WriteLine("Т.е. произведение элементов массива, расположенных между максимальным и \nминимальным элементами = " + mult);
        }

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


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

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

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