Можете ли вы помочь мне разобраться с проблемой вывода нулей при создании двух новых массивов - одного с положительными, а другого с отрицательными элементами исходного массива?
Вот мой код:
```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];
}
}
```
Теперь программа должна выводить ожидаемые результаты.
При переборе элементов массива, используйте длину того же самого массива.