Advertisement
Guest User

Untitled

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