Добавление элементов массива на определенном промежутке - C#

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

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

В одномерном массиве, состоящем из n вещественных элементов, вычислить: • Cумму элементов массива , расположенных между первым и вторым положительными элементами.

В ходе работы создать вспомогательный класс. Класс содержит методы, которые выполняют обработку массива согласно заданию. Методы вызываются в точке входа проекта.

Код накалякал, но где-то ошибку допустил. Помогите отладить.
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace ConsoleApplication31
  7. {
  8. class Program
  9. {
  10. static void Main(string[] args)
  11. {
  12. int n;
  13. Console.WriteLine("Введите кол-во элементов вашего массива");
  14. n = int.Parse(Console.ReadLine());
  15. Console.WriteLine("Введите массив чисел");
  16. float[] arr = new float[n];
  17. for (int i = 0; i < n; i++)
  18. {
  19. arr[i] = float.Parse(Console.ReadLine());
  20. }
  21. Console.WriteLine("SummaPoModuly= " + Function.SummModul(arr));
  22. Console.ReadKey();
  23. }
  24. class Function
  25. {
  26. public static float SummModul(float[] b)
  27. {
  28. //Находим первый положительный элемент массива
  29. int FirstPozElement = 0;
  30. for (int i = 0; i < b.Length; i++)
  31. {
  32. if (b[i] > 0)
  33. {
  34. FirstPozElement = i;
  35. break;
  36. }
  37. }
  38. //Находим второй положительный элемент массива
  39. int SecondPozElement = 0;
  40. for (int i = FirstPozElement; i < b.Length; i++)
  41. {
  42. if (b[i] > 0)
  43. {
  44. SecondPozElement = j;
  45. break;
  46. }
  47. //Находим сумму по модулю всех элементов между 1-ым и 2-ым положительным элементом
  48. float sum = 0;
  49. for (int i = FirstPozElement; i < j; i++)
  50. {
  51. sum += Math.Abs(b[i]);
  52. }
  53. return sum;
  54. }
  55. }
  56. }
  57. }
  58. }

Решение задачи: «Добавление элементов массива на определенном промежутке»

textual
Листинг программы
  1. public static float GetSum(float[] b)
  2.     float sum = 0;
  3.     bool inSlice = false;
  4.     for (int i = 0; i < b.Length; i++) {
  5.         if (b[i] > 0) {
  6.             if (inSlice)
  7.                 break;
  8.             inSlice = true;
  9.             continue;
  10.         }
  11.         if (inSlice)
  12.             sum += b[i];
  13.     }
  14.     return sum;
  15. }

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


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

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

12   голосов , оценка 3.917 из 5

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

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

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