В двухмерном массиве поменять местами заданные столбцы - C#

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

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

   class Program
    {
        static int[,] genArr(int n, int m)
        {
            int[,]arr=new int[n,m];
            Random rand = new Random();
            for (int i = 0; i < arr.GetLength(0); i++)
            {
                for (int j = 0; j < arr.GetLength(1);j++)
                    arr[i,j] = rand.Next(10);
            }
            return arr;
        }
 
        static int[,] Func(int[,]Arr) //функция которая должна переставлять первый и второй столбец 
        {
            
            int[,] arr = new int[Arr.GetLength(0),Arr.GetLength(1)];
            int k;
            for (int i = 0; i < arr.GetLength(1); i++)
            {
                for (int j = i+1; j < arr.GetLength(0); j++)
                {
                    k = arr[i, j];            // с временной переменой ничего не переставляет, почему не могу понять  
                    arr[i, j] = arr[j, i];
                    arr[j, i] = k;
                }
            }
            return arr;
         }
        static void print(int[,] arr)
        {
            for (int i = 0; i < arr.GetLength(0); i++)
            {
                for (int j = 0; j < arr.GetLength(1); j++)
                    Console.Write(arr[i, j] + " ");
 
                Console.WriteLine();
            }
        }
 
        static void Main()
        {
            int[,] arr = genArr(3,3);
            print(arr);
            Console.WriteLine();
 
            print(Func(arr));
        }
    }
}

Решение задачи: «В двухмерном массиве поменять местами заданные столбцы»

textual
Листинг программы
static int[,] Func(int[,]Arr) //функция которая должна переставлять первый и второй столбец 
        {
            
            int[,] arr = new int[Arr.GetLength(0),Arr.GetLength(1)];
            
            int k;
            for (int i = 0; i < arr.GetLength(1); i++)
            {
                for (int j = 0; j < arr.GetLength(0); j++)
                {
                    arr[i, j] = Arr[i, j];
                }
            }
            for (int i = 0; i < Arr.GetLength(0); i++)
            {
                k = arr[i, 0]; //0 - индекс первого столбца
                arr[i, 0] = arr[i, 1]; // 1 - индекс второго столбца
                arr[i, 1] = k;
            }
            return arr;
         }

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


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

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

9   голосов , оценка 3.667 из 5
Похожие ответы