Заполнение массива змейкой - 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();
        }
    }
}

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


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

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

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