Программа не считает номер второго отрицательного элемента, и сумму элементов - C#

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

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

Помогите пожалуйста, код вроде правильный, но программа не считает номер второго отрицательного элемента, и сумму элементов. Вот код:
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. namespace Mass
  6. {
  7. class Program
  8. {
  9. // private static double count;
  10. static void Main(string[] args)
  11. {
  12. // Random rnd = new Random();
  13. Console.Write("Введите размер массива ");
  14. int N = int.Parse(Console.ReadLine());
  15. double[] Mass = new double[N];
  16. //Заполняем массив
  17. // Console.WriteLine("Выберите ручной или автоматический вариант заполнения массива");
  18. // Console.WriteLine(" 1 - Ручной ввод\n 2 - Автоматический ввод");
  19. // swVVOD:
  20. // int vvod = int.Parse(Console.ReadLine());
  21. // switch (vvod)
  22. // {
  23. // case 1:
  24. // {
  25. // Console.Write("Введите элементы массива\n\n");
  26. // for (int i = 0; i < N; i++)
  27. //{
  28. // Mass[i] = double.Parse(Console.ReadLine());
  29. Console.WriteLine("Введіть значення елементів масиву");
  30. for (int i = 0; i < Mass.Length; i++)
  31. {
  32. Console.Write("Mass[{0}] = ", i);
  33. Mass[i] = Convert.ToDouble(Console.ReadLine());
  34. }
  35. // Контрольне виведення масиву
  36. Console.WriteLine("Вихідний масив:");
  37. for (int i = 0; i < Mass.Length; i++)
  38. {
  39. Console.Write("{0} ", Mass[i]);
  40. }
  41. Console.WriteLine(); // переведення рядка
  42.  
  43. // break;
  44. // }
  45. /* case 2:
  46. {
  47. Console.Write("\nИсходный массив\n\n");
  48. for (int i = 0; i < N; i++)
  49. {
  50. Mass[i] = (double)(rnd.NextDouble() * rnd.Next(-10, 5));
  51. Console.Write("{0} ", Mass[i]);
  52. }
  53. break;
  54. }
  55. }
  56. //Console.Write("\nИсходный массив\n\n");
  57. //Вычисляем сумму элементов массива с нечетными номерами
  58. double nechetSum = 0;
  59. for (int i = 1; i < Mass.Length; i++)
  60. {
  61. if (Mass[i] % 2 != 0)
  62. nechetSum += Mass[i];
  63. }
  64. Console.WriteLine("\n\nСумма нечетных элементов = {0}", nechetSum.ToString());
  65. */
  66. //Вычисляем сумму элементов массива между крайними отрицательными элементами
  67. int K = 0;
  68. for (int i = 0; i < Mass.Length; i++)
  69. {
  70. if (Mass[i] < 0)
  71. K = i;
  72. // break;
  73. }
  74. Console.WriteLine("номер первого отрицательного={0}", K);
  75. int K1 = 0;
  76. for (int i = K; i > Mass.Length; i--)
  77. {
  78. if (Mass[i] < 0)
  79. K1 = i;
  80. // break;
  81. }
  82. Console.WriteLine("номер второго отрицательного={0}", K1);
  83. double sum = 0.0;
  84. for (int i = K + 1; i < K1; i++)
  85. {
  86. sum += Mass[i];
  87. }
  88. Console.WriteLine("Сумма элементов = {0}", sum);
  89. //Убираем элементы с модулем менее единицы
  90. /* for (int i = 0; i < N; i++)
  91. {
  92. if (Math.Abs(Mass[i]) < 1) Mass[i] = 0;
  93. }
  94. //Сжимаем массив и заполняем освобожденные элементы нулями
  95. for (int i = 0; i < N; i++)
  96. {
  97. for (int j = i + 1; j < N; j++)
  98. {
  99. if (Mass[i] == 0)
  100. {
  101. Mass[i] = Mass[j];
  102. Mass[j] = 0;
  103. }
  104. else break;
  105. }
  106. }
  107. Console.WriteLine("Измененный массив\n");
  108. foreach (double i in Mass) Console.Write("{0} ", i);
  109. Console.WriteLine();*/
  110. Console.ReadKey();
  111. }
  112. }
  113. }

Решение задачи: «Программа не считает номер второго отрицательного элемента, и сумму элементов»

textual
Листинг программы
  1. private static void Main()
  2. {
  3.     Console.Write("Введите размер массива ");
  4.     int n = int.Parse(Console.ReadLine());
  5.     double[] mass = new double[n];
  6.  
  7.     //Заполняем массив
  8.     Console.WriteLine("Введіть значення елементів масиву");
  9.     for (int i = 0; i < mass.Length; i++)
  10.     {
  11.         Console.Write("Mass[{0}] = ", i);
  12.         mass[i] = double.Parse(Console.ReadLine());
  13.     }
  14.  
  15.     // Контрольне виведення масиву
  16.     Console.WriteLine("Вихідний масив:");
  17.     Console.WriteLine(string.Join(" ", mass));
  18.    
  19.     //Вычисляем сумму элементов массива между крайними отрицательными элементами
  20.     int k1 = 0;
  21.     for (int i = 0; i < mass.Length; i++)
  22.     {
  23.         if (mass[i] < 0)
  24.         {
  25.             k1 = i;
  26.             break;
  27.         }
  28.     }
  29.     Console.WriteLine("номер первого отрицательного={0}", k1);
  30.     int k2 = 0;
  31.     for (int i = mass.Length - 1; i > k1; i--)
  32.     {
  33.         if (mass[i] < 0)
  34.         {
  35.             k2 = i;
  36.             break;
  37.         }
  38.     }
  39.     Console.WriteLine("номер второго отрицательного={0}", k2);
  40.     double sum = 0.0;
  41.     for (int i = k1 + 1; i < k2; i++)
  42.     {
  43.         sum += mass[i];
  44.     }
  45.     Console.WriteLine("Сумма элементов = {0}", sum);
  46.     Console.ReadKey();
  47. }

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


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

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

7   голосов , оценка 4.429 из 5

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

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

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