отрицательные элементы парных столбцов переместить вверх

Необходимо в двумерном массиве переместить отрицательные элементы парных столбцов вверх, не меняя их порядок следования.

Пытаюсь понять принцип как это можно сделать:

 Write("Введите ширину массива: ");
        int N = int.Parse(ReadLine());
        Write("Введите длинну массива: ");
        int M = int.Parse(ReadLine());
        Write("Введите диапазон массива: ");
        Write("\n\tВведите минимальное число: ");
        int A = int.Parse(ReadLine());
        Write("\n\tВведите максимальное число: ");
        int B = int.Parse(ReadLine());
        
        int[,] arr = new int[M, N];
        
        Random a = new Random();
        
        for (int i = 0; i < arr.GetLength(0); i++)
        {
            for (int j = 0; j < arr.GetLength(1); j++)
            {
                arr[i,j] = a.Next(A, B);
            }
        }
        for (int i = 0; i < arr.GetLength(0); i++)
        {
            for (int j = 0; j < arr.GetLength(1); j++)
            {
                Write("\t" + arr[i,j]);
            }
            WriteLine();
        }

        int tmp = 0;
        for (int i = 0; i < arr.GetLength(1); i++)
        {
            if (i % 2 == 0)
            {
                tmp = arr[0, i];
                for (int j = 0; j < arr.GetLength(0) - 1; j++)
                {
                    //  if(j < 0)
                    {
                        arr[j, i] = arr[j + 1, i];
                    }
                }
            }
            arr[arr.GetLength(0) - 1, i] = tmp;
        }
        Write("\n");

        for (int i = 0; i < arr.GetLength(0); i++)
        {
            for (int j = 0; j < arr.GetLength(1); j++)
            {
                Write("\t" + arr[i, j]);
            }
            WriteLine();
        }
      

Ответы (1 шт):

Автор решения: Вячеслав
tmp = 0;
for (int j = 0; j < array.GetLength(1); j++) {
  int k = 0;
  for (int i = 0; i < array.GetLength(0); i++) {
    if (i % 2 == 0 && i!=0) {
      if (array[i, j] < 0) {
        tmp = array[k, j];
        array[k, j] = array[i, j];
        array[i, j] = tmp;
        k++;
      }
    }
  }
}
→ Ссылка