
Последние записи
- Проверка на шестнадцатеричный формат записи
- Отдать пользователю файл с помощью file_get_contents()
- Написать собственую функцию operator[] для битов
- Проблема с движением 2D человека
- OpenGl.Создание винтовой лестницы
- Склеить несколько файлов в один
- Windows 10 сменить администратора
- Рандомное слайдшоу
- Событие для произвольной области внутри TImage
- Удаление папки с файлами

Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk

Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
11th
Ноя
Как циклически сдвинуть массив в C#?
Posted by Chas under Пост-обзор
Здравствуйте! Не могли бы помочь, как циклически сдвинуть массив в C# на k элементов?
существуют два принципиально разный подхода (сейчаc лень, но можете порыться, на форуме я как-то приводил примеры кода, правда, на Delphi):
— однопроходный. Каждый элемент сразу сдвигаем на столько элементов, на сколько надо. Это очень эффективно. Но тут возникают сложности, т.к. достатночно муторно вычислить, какой элемент с каким надо менять местами.
— циклический. Любой сдвиг на K элементов это К сдвигов на один элемент. А сдвиг на один элемент — это алгоритмически крайне просто.
Вот пример решения на основании второго подхода:
int[] a = new int[n] { 1, 2, 3, 4, 5 };
Console.WriteLine("Исходный массив:");
for (int i = 0; i < n; ++i)
Console.Write("\t" + a[i]);
Console.WriteLine();
Console.WriteLine("Введите k");
int k = Convert.ToInt16(Console.ReadLine());
for (int i = 0; i < k; ++i)
{
int aLast = a[n-1];
for (int j = n-1; j>0; j—)
a[j] = a[j-1];
a[0] = aLast;
}
Console.WriteLine("Новый массив: ");
for (int i = 0; i < n; ++i)
Console.Write("\t" + a[i]);
Console.WriteLine();
Console.ReadKey();
Похожие статьи
Купить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту

пеллетные котлы

Пеллетный котел Emtas

Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)