В одномерном массиве вычислить номер максимального элемента - C#

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

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

Здравствуйте! Помогите пожалуйста поправить код. Неправильный вывод элементов массива. В одномерном массиве, состоящем из n целых элементов, вычислить: 1) номер максимального элемента массива; 2) произведение элементов массива, расположенных между первым и вторым нулевыми элементами. Преобразовать массив таким образом, чтобы в первой его половине располагались элементы, стоявшие в нечетных позициях, а во второй половине — элементы, стоявшие в четных позициях.
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. namespace ConsoleApplication5
  6. {
  7. class Function
  8. {
  9. //функция печати массива на экран
  10. public static void PrintArray(int[] a)
  11. {
  12. foreach (int i in a) Console.Write(i + " ");
  13. Console.WriteLine();
  14. }
  15. //----------------------------------------------
  16. //функция поиска максимального элемента в массиве
  17. public int IndexOfMaxElement(int[] a, int size)
  18. {
  19. int max = a[0];
  20. int index = 0;
  21. for (int i = 0; i < size; i++)
  22. {
  23. if (a[i] > max)
  24. {
  25. max = a[i];
  26. index = i;
  27. }
  28. }
  29. return index;
  30. }
  31. //-----------------------------------------------------
  32. //функция поиска индексов левого и правого нулей
  33. public void ZeroIndex(int[] a, int size, out int leftIndex, out int rightIndex)
  34. {
  35. leftIndex = rightIndex = 0;
  36. //в данном цикле находится индекс самого левого нуля
  37. for (int i = 0; i < size; i++)
  38. {
  39. if (a[i] == 0)
  40. {
  41. leftIndex = i;
  42. break;
  43. }
  44. }
  45. //----------------------------------------------
  46. //в данном цикле находится индекс самого правого нуля
  47. for (int i = size - 1; i >= 0; i--)
  48. {
  49. if (a[i] == 0)
  50. {
  51. rightIndex = i;
  52. break;
  53. }
  54. }
  55. //------------------------------------------------------
  56. }
  57. //-----------------------------------------------------
  58. //функция находит произведение элементов между крайними нулями
  59. public int Proizvedenie(int[] a, int leftIndex, int rightIndex)
  60. {
  61. int proiz = 1;
  62. for (int i = leftIndex + 1; i < rightIndex; i++) proiz *= a[i];
  63. return proiz;
  64. }
  65. //-------------------------------------------------------------
  66. //функция перестановки элементов в массиве
  67. public void Exchange(int[] a, int size)
  68. {
  69. int temp; //для обмена значений
  70. for (int i = 0, j = 1; i < size / 2; i++, j += 2)
  71. {
  72. temp = a[i];
  73. a[i] = a[j];
  74. a[j] = temp;
  75. }
  76. }
  77. //------------------------------------------------------------
  78. }
  79. class MainClass
  80. {
  81. static void Main()
  82. {
  83. const int arraySize = 10; //размер массива
  84. int[] array = new int[arraySize] { 12, 2, 0, 4, 7, 3, 0, 8, 9, 4 }; //сам массив
  85. Function function = new Function();
  86. int leftIndex, rightIndex;
  87. Console.WriteLine("Исходный массив:" + Environment.NewLine);
  88. Function.PrintArray(array);
  89. Console.WriteLine();
  90. Console.Write("Индекс максимального элемента в массиве: " +
  91. function.IndexOfMaxElement(array, arraySize) +
  92. Environment.NewLine);
  93. function.ZeroIndex(array, arraySize, out leftIndex, out rightIndex);
  94. Console.WriteLine("Произведение элементов, находящихся между крайними нулями: " +
  95. function.Proizvedenie(array, leftIndex, rightIndex) +
  96. Environment.NewLine);
  97. Console.WriteLine("Массив после перестановки элементов: " + Environment.NewLine);
  98. function.Exchange(array, arraySize);
  99. Function.PrintArray(array);
  100. Console.ReadKey();
  101. }
  102. }
  103. }

Решение задачи: «В одномерном массиве вычислить номер максимального элемента»

textual
Листинг программы
  1. //функция перестановки элементов в массиве
  2.         public void Exchange(int[] a, int size)
  3.         {
  4.             int temp; //для обмена значений
  5.             for (int i = 0, j = 0; i < size / 2; i++, j += 2)
  6.             {
  7.                 temp = a[i];
  8.                 a[i] = a[j];
  9.                 a[j] = temp;
  10.             }
  11.         }
  12.         //------------------------------------------------------------

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


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

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

11   голосов , оценка 4.091 из 5

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

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

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