Передать значение в метод - 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);
}