Program.cs 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. namespace WhiteBoxLab
  2. {
  3. internal class Program
  4. {
  5. /// <summary>
  6. /// Ввод пользователем количесва элементов в массивве
  7. /// </summary>
  8. /// <returns>Количесво элементов в массиве</returns>
  9. static private int EnterCountItemArray()
  10. {
  11. int countElementsArray = 0;
  12. try
  13. {
  14. Console.Write("Введиет кол-во элементов в массиве => ");
  15. countElementsArray = Convert.ToInt32(Console.ReadLine());
  16. }
  17. catch (FormatException)
  18. {
  19. Console.WriteLine("Введен неверный формат переменной. Введите целое значение");
  20. }
  21. catch (OverflowException)
  22. {
  23. Console.WriteLine("Вы ввели слишком большое число");
  24. }
  25. if (countElementsArray == 0 || countElementsArray < 0)
  26. {
  27. Console.WriteLine("Кол-во элементов в массивве не может быть меньше или равно 0");
  28. }
  29. return countElementsArray;
  30. }
  31. /// <summary>
  32. /// Заполеннеие массива рандомными числами от -100 до 99
  33. /// </summary>
  34. /// <param name="countElementsArray">Количесво элементова в массиве</param>
  35. /// <returns>Заполненный массив</returns>
  36. static private int[] FillingArray(int countElementsArray)
  37. {
  38. int[] array = new int[countElementsArray];
  39. Random rnd = new Random();
  40. for (int i = 0; i < countElementsArray; i++)
  41. {
  42. array[i] = rnd.Next(-100, 100);
  43. }
  44. return array;
  45. }
  46. /// <summary>
  47. /// Вывод массива в консоль
  48. /// </summary>
  49. /// <param name="countElementsArray">Количесво элементов в массиве</param>
  50. /// <param name="array">Массив</param>
  51. static private void ShowArray(int countElementsArray, int[] array)
  52. {
  53. for (int i = 0; i < countElementsArray; i++)
  54. {
  55. Console.Write(array[i] + " ");
  56. }
  57. Console.WriteLine();
  58. }
  59. /// <summary>
  60. /// Поиск минмального элемента массива и его индекс
  61. /// </summary>
  62. /// <param name="countElementsArray">Количесво элементов в массиве</param>
  63. /// <param name="array">Массив</param>
  64. /// <param name="indexMin">Индекс массива(пустой, для заполнения функцией)</param>
  65. /// <returns>Минмальный элемент</returns>
  66. static private int SearchMinimumElement(int countElementsArray, int[] array, out int indexMin)
  67. {
  68. int min = array[0];
  69. indexMin = 0;
  70. for (int i = 0; i < countElementsArray; i++)
  71. {
  72. if (array[i] < min)
  73. {
  74. min = array[i];
  75. indexMin = i;
  76. }
  77. }
  78. return min;
  79. }/// <summary>
  80. /// Поиск максимального элемента массива и его индекс
  81. /// </summary>
  82. /// <param name="countElementsArray">Количесво элементов в массиве</param>
  83. /// <param name="array">Массив</param>
  84. /// <param name="indexMax">Индекс массива(пустой, для заполнения функцией)</param>
  85. /// <returns>Максимальный элемент</returns>
  86. static private int SearchMaximumElement(int countElementsArray, int[] array, out int indexMax)
  87. {
  88. int max = array[0];
  89. indexMax = 0;
  90. for (int i = 0; i < countElementsArray; i++)
  91. {
  92. if (array[i] > max)
  93. {
  94. max = array[i];
  95. indexMax = i;
  96. }
  97. }
  98. return max;
  99. }
  100. static void Main(string[] args)
  101. {
  102. Console.WriteLine("Вариант №7\nВ одномерном динамическом массиве, состоящем из n элементов, поменять местами максимальный и минимальный элементы!");
  103. int countElementsArray = -1;
  104. while (countElementsArray <= 0)
  105. {
  106. countElementsArray = EnterCountItemArray();
  107. }
  108. int[] array = FillingArray(countElementsArray);
  109. ShowArray(countElementsArray, array);
  110. int indexMin, indexMax;
  111. int min = SearchMinimumElement(countElementsArray, array, out indexMin);
  112. int max = SearchMaximumElement(countElementsArray, array, out indexMax);
  113. Console.WriteLine("Максимальный элемент = " + max + " на " + indexMax + " позиции\nМинимальный элемент = " + min + " на " + indexMin + " позиции");
  114. array[indexMin] = max;
  115. array[indexMax] = min;
  116. ShowArray(countElementsArray, array);
  117. }
  118. }
  119. }