В двухмерном массиве поменять местами заданные столбцы - 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; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д