Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.63/40: Рейтинг темы: голосов - 40, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 03.03.2014
Сообщений: 2

Перенести первые k элементов одномерного массива в конец

13.03.2014, 12:47. Показов 7831. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Опять к вам, заранее спасибо!
Перенести первые k элементов одномерного массива в конец, то есть: a[k+1], a[k+2], ...., а[n], а[1], а[2], ...., a[k].
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.03.2014, 12:47
Ответы с готовыми решениями:

Дан одномерный массив m из 28 элементов. Перенести первые k элементов в конец: m k 1 , m k 2 , ., m 1 , m 2
Прошу помогите решить задачу на . Очень нужно пожалуйста!:help:

Переставить в одномерном массиве первые k элементов в конец массива в обратном порядке
Переставить в одномерном массиве первые k элементов в конец массива в обратном порядке, то есть:a,a,…,a,a,a,…,a

Описать функцию, перемещающую нулевые элементы в конец каждой половины одномерного массива
Описать функцию MMArray(int arr), определяющую и выводящую расстояние между минимальным и максимальным элементами одномерного массива. ...

24
foo();
 Аватар для rattrapper
886 / 587 / 222
Регистрация: 03.07.2013
Сообщений: 1,549
Записей в блоге: 2
19.03.2014, 13:11
Студворк — интернет-сервис помощи студентам
понимаю, что сейчас очень рискую нарваться на критику, но я просто оставлю это здесь
public static IEnumerable<T> Shift<T>(this IEnumerable<T> seq, int k)
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
public static IEnumerable<T> Shift<T>(this IEnumerable<T> seq, int k)
{
    T[] temp = new T[k];
    int i = 0;
    foreach (var e in seq)
    {
        if (k-- > 0)
            temp[i++] = e;
        else yield return e;
    }
    foreach (var e in temp)
        yield return e;
}
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
19.03.2014, 13:43
rattrapper, так смысл как раз в том, чтобы сделать без буфера, изменив оригинальную коллекцию. Иначе можно было бы просто написать так
C#
1
2
3
4
5
        public static IEnumerable<T> Shift<T>(IList<T> seq, int k)
        {
            for (int i = k; i < seq.Count + k; i++)
                yield return seq[i%seq.Count];
        }
или так:
C#
1
2
3
4
5
6
7
8
9
10
        public static T[] Shift<T>(ICollection<T> seq, int k)
        {
            T[] result = new T[seq.Count];
            int i = 0;
            foreach (T v in seq)
            {
                result[(i++ + seq.Count - k)%seq.Count] = v;
            }
            return result;
        }
1
19.03.2014, 14:27

Не по теме:

Цитата Сообщение от Psilon Посмотреть сообщение
смысл как раз в том, чтобы сделать без буфера
Только в сообщении ТСа я не вижу ни единого намека на это. Конечно, если сильно хотеть, можно и по-Вашему воспринимать написанное. Но в случае необходимости выполнить задание без буфера, об этом было бы упомянуто, имхо.

1
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
19.03.2014, 19:08
Цитата Сообщение от rattrapper Посмотреть сообщение
Только в сообщении ТСа я не вижу ни единого намека на это. Конечно, если сильно хотеть, можно и по-Вашему воспринимать написанное. Но в случае необходимости выполнить задание без буфера, об этом было бы упомянуто, имхо.
есть же. Если бы нужно было сформировать с буфером, то задание звучало бы так:
"Напишите функцию, которая создает из массива а массив b по следующему правилу: a[k+1], a[k+2], ...., а[n], а[1], а[2], ...., a[k]."

По крайней мере по моему опыту задачи именно так разделяются. Это не гарант, это просто статистика
1
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
26.03.2014, 13:37
Цитата Сообщение от Psilon Посмотреть сообщение
да что вы такое говорите
Могу сказать еще раз. int есть подмножество double. Зачем вы рассматриваете long (о котором я не говорил и который в индексах линка не используется) мне не ясно.
Цитата Сообщение от Psilon Посмотреть сообщение
это неверное утверждение
Верное. Достаточно в вашем коде сменить long на int
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.03.2014, 13:37

Все отрицательные элементы массива X перенести в его начало, а все остальные — в конец
Все отрицательные элементы массива X перенести в его начало, а все остальные — в конец, сохраняя исходное взаимное расположение как среди...

Перенос нулевых элементов массива в конец(без заведения нового массива) C#
консольное приложение в Visual Studio C#, проблема - программа переносит в конец только один ноль, а дальше как будто не видит. возможно,...

Алгоритм для формирования нового одномерного массива из элементов заданного массива
Cоставить алгоритм для формирование нового одномерного массива из элементов заданного массива.

Элементы одномерного массива, большие среднего значения элементов массива, заменить на 0.
1. Элементы одномерного массива, большие среднего значения элементов массива, заменить на 0. 2. Поменять мествами максимальный и...

Выбрать первые 30 элементов из массива
Есть массив double чисел, состоящий из 100 элементов. Нужно выбрать первые 30 элементов. Как это сделать?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Новые блоги и статьи
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2. Задача: Обеспечить запись документа в регистр сведений независимо от. . .
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется. Ну как вам?
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml, в чате форсили функторы модулей как суперфичу. Пытаясь отдуплить концепт, наткнулся на тутор с простым примером. А главный принцип обучения от. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru