Выполнить циклический сдвиг массива вниз или вверх на количество шагов - C#

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

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

3 Данный рваный (зубчатый) массив, заполненный случайными действительными числами. Выполнить циклический сдвиг массива вниз или вверх на количество шагов

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

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. namespace ConsoleApplication
  5. {
  6.     internal static class Program
  7.     {
  8.         private static void Main()
  9.         {
  10.             var randomizer = new Random();
  11.  
  12.             var array = new double[5][];
  13.             for (int i = 0; i < array.Length; i++)
  14.             {
  15.                 array[i] = new double[randomizer.Next(5) + 1];
  16.                 for (int j = 0; j < array[i].Length; j++)
  17.                 {
  18.                     array[i][j] = randomizer.NextDouble() * 10;
  19.                 }
  20.             }
  21.             Print(array);
  22.  
  23.             Print(MoveDown(array, 2));
  24.             Print(MoveDown(array, -2));
  25.         }
  26.  
  27.         private static IEnumerable<double[]> MoveDown(IList<double[]> array, int shift)
  28.         {
  29.             var result = new double[array.Count][];
  30.             for (int i = 0; i < array.Count; i++)
  31.             {
  32.                 int newIndex = (i - shift + array.Count) % array.Count;
  33.                 result[i] = new double[array[newIndex].Length];
  34.                 Array.Copy(array[newIndex], result[i], array[newIndex].Length);
  35.             }
  36.             return result;
  37.         }
  38.  
  39.         private static void Print(IEnumerable<double[]> array)
  40.         {
  41.             Console.WriteLine("Array:");
  42.             foreach (double[] row in array)
  43.             {
  44.                 foreach (double item in row)
  45.                 {
  46.                     Console.Write("{0:0.00} ", item);
  47.                 }
  48.                 Console.WriteLine();
  49.             }
  50.             Console.WriteLine();
  51.         }
  52.     }
  53. }

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


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

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

13   голосов , оценка 4.077 из 5

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

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

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