Заполнение массива змейкой - C# (180832)

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

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

пример 43210 56789 для заполнения обязательно использовать вектор
Листинг программы
  1. class Program
  2. {
  3. static void arr_input ( int[] vector)
  4. {
  5. for (int i = 0; i < vector.Length; i++)
  6. vector[i] = i + 1;
  7. }
  8. static void arr_output(int[,] array)
  9. {
  10. for (int i = 0; i < array.GetLength(0); i++)
  11. {
  12. for (int j = 0; j < array.GetLength(1); j++)
  13. {
  14. Console.Write(array[i, j]);
  15. }
  16. Console.WriteLine();
  17. }
  18. }
  19. static void Main(string[] args)
  20. {
  21. int[] vector=new int [80];
  22. int[,] array=new int[8,8];
  23. arr_input( vector);
  24. filling(vector, array);
  25. arr_output(array);
  26. }
  27. static void filling (int [] vector,int [,]mas)
  28. {
  29. int k = 0;
  30. for (int i = 0; i < mas.GetLength(0); i++)
  31. {
  32. if (i % 2 == 0)
  33. {
  34. for (int j = 0; j < mas.GetLength(1)-1; j++)
  35. {
  36. mas[i, j] = vector[k];
  37. k++;
  38. }
  39. }
  40. for (int j = mas.GetLength(1); j > 0; j--)
  41. {
  42. mas[i, j] = vector[k];
  43. k++;
  44. }
  45. }
  46. }
  47. }

Решение задачи: «Заполнение массива змейкой»

textual
Листинг программы
  1. using System;
  2. using System.Linq;
  3.  
  4. class Program
  5. {
  6.     static void Fill(int[,] matrix, int[] vector)
  7.     {
  8.         int begin = 0;
  9.         int end = matrix.GetLength(1);
  10.         int step = 1;
  11.         int idx = -1;
  12.         for (int i = 0; i < matrix.GetLength(0); i++)
  13.         {
  14.             begin = matrix.GetLength(1) - 1 - begin;
  15.             end = matrix.GetLength(1) - 1 - end;
  16.             step = -step;
  17.             for (int j = begin; j != end; j += step)
  18.             {
  19.                 idx = (idx + 1) % vector.Length;
  20.                 matrix[i, j] = vector[idx];
  21.             }
  22.         }
  23.     }
  24.  
  25.     static void Main()
  26.     {
  27.         int[] arr = Enumerable.Repeat(new Random(), 20).Select(r => r.Next(100)).ToArray();
  28.         Console.WriteLine(String.Join(", ", arr));
  29.         int[,] matrix = new int[5, 5];
  30.         Fill(matrix, arr);
  31.         Console.WriteLine();
  32.         for (int i = 0; i < matrix.GetLength(0); i++)
  33.         {
  34.             for (int j = 0; j < matrix.GetLength(1); j++)
  35.             {
  36.                 Console.Write(matrix[i, j]);
  37.                 Console.Write("\t");
  38.             }
  39.             Console.WriteLine();
  40.         }
  41.     }
  42. }

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


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

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

14   голосов , оценка 3.857 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы