Почему не считает сумму элементов, между первым и последним отрицательным элементом? - C#
Формулировка задачи:
С# Почему не считает сумму элементов, между первым и последним отрицательным элементом
class Program { static void Main(string[] args) { // Создание массива int n = 21; int[] array = new int[n]; Random rand = new Random(); for (int i = 0; i < n; i++) { array[i] = rand.Next(-10, 10); Console.WriteLine("" + array[i]); } // Сумма элементов под нечетными номерами int s1 = 0; for (int i = 0; i < n; i++) { if (i % 2 != 0) s1 = s1 + array[i]; } Console.WriteLine("Сумма={0}", s1); //сумма элементов массива, расположенных между //первым и последним отрицательными элементами int s2 = 0, otr1 = 0, otr2 = 0 ; for (int i = 0; i < n; i++)// первый отрицательный элемент { if (array[i] < 0) { otr1 = array[i]; Console.WriteLine("Первый отрицательный элемент= {0}", otr1); for (i = n - 1; i > -1; --i)// последний отрицательный элемент { if (array[i] < 0) { otr2 = array[i]; Console.WriteLine("Последний отрицательный элемент= {0}", otr2); for (i = otr1 + 1; i < otr2; i++) s2 = s2 + array[i]; Console.WriteLine("Сумма={0}", s2); Console.ReadKey(); } } } } } } }
Решение задачи: «Почему не считает сумму элементов, между первым и последним отрицательным элементом?»
textual
Листинг программы
int end = array.Length - 1; for (int i = 0; i <= end; i++) if ((Math.Abs(array[i]) < 1)) { for (int j = i; j < end; j++) array[j] = array[j + 1]; //сдвигаем массив влево array[end] = 0; //записываем в конец 0 end--; i--; } foreach (int element in array) Console.Write("{0} ", element); Console.WriteLine();}
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д