Выполнить циклический сдвиг массива вниз или вверх на количество шагов - C#
Формулировка задачи:
3 Данный рваный (зубчатый) массив, заполненный случайными действительными числами. Выполнить циклический сдвиг массива вниз или вверх на количество шагов
Решение задачи: «Выполнить циклический сдвиг массива вниз или вверх на количество шагов»
textual
Листинг программы
using System; using System.Collections.Generic; namespace ConsoleApplication { internal static class Program { private static void Main() { var randomizer = new Random(); var array = new double[5][]; for (int i = 0; i < array.Length; i++) { array[i] = new double[randomizer.Next(5) + 1]; for (int j = 0; j < array[i].Length; j++) { array[i][j] = randomizer.NextDouble() * 10; } } Print(array); Print(MoveDown(array, 2)); Print(MoveDown(array, -2)); } private static IEnumerable<double[]> MoveDown(IList<double[]> array, int shift) { var result = new double[array.Count][]; for (int i = 0; i < array.Count; i++) { int newIndex = (i - shift + array.Count) % array.Count; result[i] = new double[array[newIndex].Length]; Array.Copy(array[newIndex], result[i], array[newIndex].Length); } return result; } private static void Print(IEnumerable<double[]> array) { Console.WriteLine("Array:"); foreach (double[] row in array) { foreach (double item in row) { Console.Write("{0:0.00} ", item); } Console.WriteLine(); } Console.WriteLine(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д