Можете ли вы помочь мне разобраться с проблемой вывода нулей при создании двух новых массивов - одного с положительными, а другого с отрицательными элементами исходного массива? Вот мой код: ```csharp class Program { static void Main(string[] args) { Random rand = new Random(); int Pos = 0; int Neg = 0; int kolPos = 0; int kolNeg = 0; int[] massiv; Console.WriteLine("Вывод исходного массива:\n"); massiv = new int[13]; for (int i = 0; i < 13; i++) { massiv[i] = (int)rand.Next(-100, 100); if (massiv[i] > 0) kolPos++; if (massiv[i] < 0) kolNeg++; Console.Write($"{massiv[i]} "); } Console.WriteLine("\nВывод массивов отрицательных и положительных чисел\n"); int[] massiv2 = new int[kolPos]; for (int x = 0; x < massiv2.Length; x++) { if (massiv[x] > 0) { massiv2[Pos] = massiv[x]; Pos++; } } for (int x = 0; x < kolPos; x++) { Console.Write($"{massiv2[x]} "); } Console.WriteLine(); int[] massiv3 = new int[kolNeg]; for (int x = 0; x < massiv3.Length; x++) { if (massiv[x] < 0) { massiv3[Neg] = massiv[x]; Neg++; } } for (int x = 0; x < kolNeg; x++) { Console.Write($"{massiv3[x]} "); } Console.ReadLine(); } } ```
Проблема возникает из-за неправильного использования индексов во втором и третьем циклах. В коде первого цикла вы определяете количество положительных и отрицательных чисел, сохраняя их в переменных "kolPos" и "kolNeg" соответственно. Однако, во втором цикле вы используете переменную "Pos" в качестве индекса для массива "massiv2" и увеличиваете ее значение после каждой итерации. Так же и для переменной "Neg" и массива "massiv3" в третьем цикле. Проблема заключается в том, что переменные "Pos" и "Neg" не соответствуют нужным вам индексам, так как они увеличиваются после каждой итерации циклов, в то время как индексы массивов должны начинаться с 0. Чтобы исправить это, вам нужно изменить код второго цикла следующим образом: ```csharp for (int x = 0; x < massiv.Length; x++) { if (massiv[x] > 0) { massiv2[x] = massiv[x]; } } ``` А код третьего цикла нужно изменить следующим образом: ```csharp for (int x = 0; x < massiv.Length; x++) { if (massiv[x] < 0) { massiv3[x] = massiv[x]; } } ``` Теперь программа должна выводить ожидаемые результаты.
При переборе элементов массива, используйте длину того же самого массива.