Advertisement
Guest User

Untitled

a guest
Nov 23rd, 2014
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.12 KB | None | 0 0
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6.  
  7. namespace vk_ol9
  8. {
  9. class Program
  10. {
  11.  
  12. static void select_sort(double[] a, int length)
  13. {
  14. //в цикле до предпоследнего элемента
  15. for (int i = 0; i < length - 1; i++)
  16. {
  17. int min_i = i;/* устанавливаем начальное значение минимального индекса */
  18. for (int j = i + 1; j < length; j++)/* находим индекс минимального элемента */
  19. {
  20. //если модуль текущего элемента меньше модуля минимально
  21. if (Math.Abs(a[j]) < Math.Abs(a[min_i]))
  22. {
  23. //индекс текущего присваиваем индексу минимального
  24. min_i = j;
  25. }
  26. }
  27. double temp = a[i];/* меняем значения местами */
  28. a[i] = a[min_i];
  29. a[min_i] = temp;
  30. }
  31. }
  32. //вывод данных массива
  33. static void print(double[] mas)
  34. {
  35. Console.WriteLine("Данные в массиве:\n");
  36. for (int i = 0; i < mas.Length; i++)
  37. Console.Write(" {0:F4} ", mas[i]);
  38. Console.WriteLine("\n");
  39. }
  40.  
  41. static void Main(string[] args)
  42. {
  43.  
  44. Random rand = new Random();
  45. Console.WriteLine("Введите размер массива");
  46. int n = int.Parse(Console.ReadLine());
  47. double sum = 0;
  48. double min;
  49. int firstMinus = -1, secondMinus = -1;
  50. int positinoMin=0;
  51. double[] mas = new double[n];
  52. for (int i = 0; i < n; i++)//заполняем массив
  53. {
  54. mas[i] = rand.NextDouble();
  55. if (rand.NextDouble() >= 0.5)//делаем число больше 1 с вероятностью 50%
  56. {
  57. mas[i] += rand.Next(10);
  58. }
  59. if (rand.NextDouble() >= 0.5)//делаем число отрицательным с вероятностью 50%
  60. {
  61. mas[i] *= -1;
  62. }
  63. }
  64. print(mas);//вывод массива на экран
  65. min = mas[0];
  66. for(int i=0;i<n;i++)
  67. if (mas[i] < min)
  68. {
  69. min = mas[i];
  70. positinoMin = i;
  71. }
  72. Console.WriteLine("Номер минимального элмента{0}, значение = {1}", min, positinoMin);
  73.  
  74. for (int i = 0; i < n; i++)
  75. {
  76. if (mas[i] < 0 && firstMinus == -1)
  77. {
  78. firstMinus = i;
  79. continue;
  80. }
  81. if (mas[i] < 0 && secondMinus == -1 && firstMinus!=-1)
  82. secondMinus = i;
  83. if (firstMinus != -1 && secondMinus != -1)
  84. break;
  85. }
  86. if (firstMinus == -1 || secondMinus == -1)
  87. {
  88. Console.WriteLine("Посчитать сумму не возможно.Слишком мало отрицательных элементов");
  89. }
  90. else
  91. {
  92.  
  93. for (int i = firstMinus; i < secondMinus; i++)
  94. sum += mas[i];
  95. Console.WriteLine("Сумма между первыми двумя отрицательными элементами равна " + sum);
  96. }
  97. select_sort(mas, n);
  98. Console.WriteLine("Результат сортировки\n");
  99. print(mas);
  100. Console.WriteLine("\nДля продожения нажмите любую клавишу\n");
  101. Console.ReadLine();
  102. }
  103. }
  104. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement