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

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

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

Не могу передать в метод MultRange два значения: idMin и idMax из метода MinMaxId. Ведь return я так понимаю может только одно значение передать, а мне нужно два.
Листинг программы
  1. static void Main(string[] args)
  2. {
  3. Console.Title = "Математические операции с одномерными массивами";
  4. Console.WriteLine("Введите размерность массива A:");
  5. int n = Convert.ToInt32(Console.ReadLine());
  6. double[] array = new double[n];
  7. InputArray(array);
  8. SumNegative(array);
  9. MinMaxId(array);
  10. MultRange(array);
  11. Console.WriteLine("\nСортировка элементов массива в порядке возрастания:");
  12. ArrSort(array);
  13. PrintArray(array);
  14. Console.ReadKey();
  15. }
  16. public static void MinMaxId(double[] array)
  17. {
  18. double min = array[0];
  19. double max = array[0];
  20. int idMin = 0, idMax = 0;
  21. for (int i = 1; i < array.Length; i++)
  22. {
  23. if (array[i] < array[idMin])
  24. {
  25. min = array[i];
  26. idMin = i;
  27. }
  28. if (array[i] > array[idMax])
  29. {
  30. max = array[i];
  31. idMax = i;
  32. }
  33. }
  34. Console.WriteLine("Максимальный элемент A[" + (idMax + 1) + "] = " + max);
  35. Console.WriteLine("Минимальный элемент A[" + (idMin + 1) + "] = " + min);
  36. }
  37. public static void MultRange(double[] array, int idMin, int idMax)
  38. {
  39. double mult = 1;
  40. int idStart = Math.Min(idMin, idMax), idEnd = Math.Max(idMin, idMax);
  41. for (int i = idStart; i <= idEnd; i++)
  42. {
  43. mult *= array[i];
  44. if (array[i] < 0)
  45. {
  46. Console.Write("(" + array[i] + ")");
  47. if (i < idEnd)
  48. {
  49. Console.Write(" * ");
  50. }
  51. }
  52. if (array[i] >= 0)
  53. {
  54. Console.Write(array[i]);
  55. if (i < idEnd)
  56. {
  57. Console.Write(" * ");
  58. }
  59. }
  60. if (i == idEnd)
  61. {
  62. Console.WriteLine(" = " + mult);
  63. }
  64. }
  65. Console.WriteLine("Т.е. произведение элементов массива, расположенных между максимальным и \nминимальным элементами = " + mult);
  66. }

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

textual
Листинг программы
  1.   static void Main(string[] args)
  2.         {
  3.             Console.Title = "Математические операции с одномерными массивами";
  4.             Console.WriteLine("Введите размерность массива A:");
  5.             int n = Convert.ToInt32(Console.ReadLine());
  6.             double[] array = new double[n];
  7.             InputArray(array);
  8.             SumNegative(array);
  9.             MinMaxId(array);
  10.             MultRange(array, MinMaxId(array));
  11.             Console.WriteLine("\nСортировка элементов массива в порядке возрастания:");
  12.             ArrSort(array);
  13.             PrintArray(array);
  14.             Console.ReadKey();
  15.         }
  16.  
  17.         public static int[] MinMaxId(double[] array)
  18.         {
  19.             double min = array[0];
  20.             double max = array[0];
  21.             int idMin = 0, idMax = 0;
  22.             int[] minmax = new int[2];
  23.             for (int i = 1; i < array.Length; i++)
  24.             {
  25.                 if (array[i] < array[idMin])
  26.                 {
  27.                     min = array[i];
  28.                     idMin = i;
  29.                 }
  30.                 if (array[i] > array[idMax])
  31.                 {
  32.                     max = array[i];
  33.                     idMax = i;
  34.                 }
  35.             }
  36.             minmax[0] = idMin;
  37.             minmax[0] = idMax;
  38.             Console.WriteLine("Максимальный элемент A[" + (idMax + 1) + "] = " + max);
  39.             Console.WriteLine("Минимальный элемент A[" + (idMin + 1) + "] = " + min);
  40.             return minmax;
  41.         }
  42.  
  43.         public static void MultRange(double[] array, int[] minmax)
  44.         {
  45.             double mult = 1;
  46.             int idStart = Math.Min(minmax[0], minmax[1]), idEnd = Math.Max(minmax[0], minmax[1]);
  47.             for (int i = idStart; i <= idEnd; i++)
  48.             {
  49.                 mult *= array[i];
  50.                 if (array[i] < 0)
  51.                 {
  52.                     Console.Write("(" + array[i] + ")");
  53.                     if (i < idEnd)
  54.                     {
  55.                         Console.Write(" * ");
  56.                     }
  57.                 }
  58.                 if (array[i] >= 0)
  59.                 {
  60.                     Console.Write(array[i]);
  61.                     if (i < idEnd)
  62.                     {
  63.                         Console.Write(" * ");
  64.                     }
  65.                 }
  66.                 if (i == idEnd)
  67.                 {
  68.                     Console.WriteLine(" = " + mult);
  69.                 }
  70.             }
  71.             Console.WriteLine("Т.е. произведение элементов массива, расположенных между максимальным и \nминимальным элементами = " + mult);
  72.         }

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


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

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

15   голосов , оценка 3.867 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы