Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
 Аватар для wm_leviathan
214 / 214 / 73
Регистрация: 12.01.2011
Сообщений: 767

Как k-й элемент одномерного массива переместить на i-ю позицию

29.09.2015, 21:43. Показов 3362. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток всем, универский курс по массивам совсем забыл. собственно имеется массив 0 1 2 3 4 5 6 как мне 4й элемент переместить на 1ю позицию а остальные элементы сдвинулись вправо? чтоб получилось 0 4 1 2 3 5 6
можно и 2 массива использовать этим не ограничен. Да вообще можно хоть что использовать уже репа не варит с этим массивом ))) Буду очень признателен за любую помощь.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.09.2015, 21:43
Ответы с готовыми решениями:

Переместить данный элемент в последнюю позицию массива
задан одномерный массив состоящий из n вещественных элементов.Определить максимальный элемент массива по модулю и позицию в которой он...

Сдвинуть все элементы одномерного массива начиная с заданного номера к концу на 1 позицию и записать элемент
Как сдвинуть все элементы начиная с заданного номера к концу на 1 позицию и записать элемент. Одномерный массив. Помогите с листингом,...

Переместить в массиве заданный элемент в указанную позицию
Дан массив А из N целых чисел. Все его элементы, кроме одного, упорядочены по возрастанию. Переместить значение этого элемента на такую...

5
 Аватар для Рядовой
1524 / 914 / 329
Регистрация: 17.05.2015
Сообщений: 3,438
29.09.2015, 22:00
Наверняка, не лучший вариант, но без всяких курсов по массивам
C#
1
2
3
4
5
6
7
8
9
int a = 4;
            int[] one = { 3, 2, 3, 8, 5 };
            int[] two = new int[one.Length];
            two[0] = one[a];
            for (int i = 1; i < one.Length; i++)
                two[i] = one[i-1];
            foreach(int f in two)
                Console.Write(f + " ");
                    Console.Read();
0
 Аватар для wm_leviathan
214 / 214 / 73
Регистрация: 12.01.2011
Сообщений: 767
29.09.2015, 22:10  [ТС]
не совсем, то. я так понимаю "а" это позиция ? к примеру ввести а=2 получается 3 3 2 3 8 а должно быть по идее 3 3 2 8 5
0
 Аватар для Рядовой
1524 / 914 / 329
Регистрация: 17.05.2015
Сообщений: 3,438
29.09.2015, 22:56
wm_leviathan, да, там ошибка, вот немного переписал, правда с листами, раз ограничений нет)) так работает.
C#
1
2
3
4
5
6
7
8
int a = 3;
            List<int> one = new List<int> { 4, 3, 7, 8, 5 };
            List<int> two = new List<int>();
            two.Add(one[a]);
            one.RemoveAt(a);
            for (int i = 0; i < one.Count; i++) two.Add(one[i]);
            two.ForEach(x => Console.Write(x + " "));
            Console.Read();
1
 Аватар для wm_leviathan
214 / 214 / 73
Регистрация: 12.01.2011
Сообщений: 767
29.09.2015, 23:05  [ТС]
Рядовой, примного благодарен!! сам сделал через тоже через List используя removeAt (indexOf) и insert(indexOf, item)
0
 Аватар для memphis
740 / 284 / 83
Регистрация: 12.12.2012
Сообщений: 564
29.09.2015, 23:58
Эх... Ну не нужен ведь здесь второй массив. А removeAt() и insert() всё равно сдвигают элементы. Т.е. вызываете remove - элементы сдвигаются, после этого вызываете insert - опять сдвигаются. Зачем их гонять туда сюда? Можно ведь сделать один раз.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
using System;
namespace ConsoleApp1
{
    class Program
    {
        static void ReplaceItem(int[] a, int idx, int newIdx)
        {
            int t = a[idx];
            int dir = Math.Sign(newIdx - idx);
 
            if (dir == 0)
                return;
 
            while (idx != newIdx)
            {
                a[idx] = a[idx + dir];
                idx += dir;
            }
 
            a[newIdx] = t;
        }
        
        static void Main()
        {
            int[] arr = { 0, 1, 2, 3, 4, 5, 6 };
            Console.WriteLine(String.Join(" ", arr));
 
            ReplaceItem(arr, 4, 1);
            Console.WriteLine(String.Join(" ", arr));
 
            ReplaceItem(arr, 1, 4);
            Console.WriteLine(String.Join(" ", arr));
        }
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.09.2015, 23:58
Помогаю со студенческими работами здесь

Массивы (циклическим сдвигом переместить найденный элемент на последнюю позицию)
В общем первое задание &quot;определить минимальный положительный массив и средне арифметическое значение отрицательных элементов&quot;, я...

Как переместить элемент массива?
Добрый день. Подскажите, как мне сделать вставку элемента массива со сдвигом всего массива? И как удалить элемент массива со сдвигом? ...

Как добавить элемент в N позицию массива?
Здравствуйте. Как добавить элемент в N позицию в C++? Подскажите, пожалуйста.

Найти позицию максимального элемента одномерного массива
Программу для нахождения максимального элемента написать смог, а как вывести его индекс? Помогите, пожалуйста. program n3; const n=10; ...

Как вычесть из каждого элемента одномерного массива каждый элемент другого массива
Есть два одинаковых динамически заданных одномерных массива, число их элементов задается пользователем. из каждого элемента первого массива...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru