Заполнение массива змейкой - C# (180832)
Формулировка задачи:
пример
43210
56789
для заполнения обязательно использовать вектор
class Program { static void arr_input ( int[] vector) { for (int i = 0; i < vector.Length; i++) vector[i] = i + 1; } static void arr_output(int[,] array) { for (int i = 0; i < array.GetLength(0); i++) { for (int j = 0; j < array.GetLength(1); j++) { Console.Write(array[i, j]); } Console.WriteLine(); } } static void Main(string[] args) { int[] vector=new int [80]; int[,] array=new int[8,8]; arr_input( vector); filling(vector, array); arr_output(array); } static void filling (int [] vector,int [,]mas) { int k = 0; for (int i = 0; i < mas.GetLength(0); i++) { if (i % 2 == 0) { for (int j = 0; j < mas.GetLength(1)-1; j++) { mas[i, j] = vector[k]; k++; } } for (int j = mas.GetLength(1); j > 0; j--) { mas[i, j] = vector[k]; k++; } } } }
Решение задачи: «Заполнение массива змейкой»
textual
Листинг программы
using System; using System.Linq; class Program { static void Fill(int[,] matrix, int[] vector) { int begin = 0; int end = matrix.GetLength(1); int step = 1; int idx = -1; for (int i = 0; i < matrix.GetLength(0); i++) { begin = matrix.GetLength(1) - 1 - begin; end = matrix.GetLength(1) - 1 - end; step = -step; for (int j = begin; j != end; j += step) { idx = (idx + 1) % vector.Length; matrix[i, j] = vector[idx]; } } } static void Main() { int[] arr = Enumerable.Repeat(new Random(), 20).Select(r => r.Next(100)).ToArray(); Console.WriteLine(String.Join(", ", arr)); int[,] matrix = new int[5, 5]; Fill(matrix, arr); Console.WriteLine(); for (int i = 0; i < matrix.GetLength(0); i++) { for (int j = 0; j < matrix.GetLength(1); j++) { Console.Write(matrix[i, j]); Console.Write("\t"); } Console.WriteLine(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д