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

Массив: Удалить из массива все одинаковые элементы, оставив их первые вхождения.

30.05.2013, 10:18. Показов 11082. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В С# решите задачу плиииз... Дан целочисленный массив N. Удалить из массива все одинаковые элементы, оставив их первые вхождения.

Добавлено через 1 час 57 минут
Помогите пожалуста. Срочно нужно............
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.05.2013, 10:18
Ответы с готовыми решениями:

Удалить из массива все одинаковые элементы, оставив их первые вхождения
Дан целочисленный массив размером N. Удалить из массива все одинаковые элементы, оставив их первые вхождения.

Удалить из массива все соседние одинаковые элементы, оставив их первые вхождения
Доброго времени суток! Условие: Дан целочисленный массив размера N. Удалить из массива все соседние одинаковые элементы, оставив их...

Удалить из массива все соседние одинаковые элементы, оставив их первые вхождения
const n=10; type vect=array of integer; var i,k:integer; r:vect; begin randomize; for i:=1 to n do

18
 Аватар для SandWraith
189 / 189 / 38
Регистрация: 11.04.2009
Сообщений: 497
30.05.2013, 10:37
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
        static IEnumerable<int> Filter(int[] array)
        {
            var selectedItems = new List<int>();
            foreach (var i in array)
                if (!selectedItems.Contains(i))
                {
                    selectedItems.Add(i);
                    yield return i;
                }
        }
 
            var a = new int[] { 0, 1, 1, 2, 3, 2, 2 };
            var b = Filter(a).ToArray();
1
18 / 18 / 8
Регистрация: 10.02.2013
Сообщений: 250
30.05.2013, 10:38
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] a = new int[] {5,5,5,8,8,8,9,9,9,3,3,3,4,4,4, };
            List<int> s = new List<int>();
            foreach (int n in a)
            {
                Console.Write(n + " ");
            }
            for (int i = 0; i < a.Length; i++)
            {
                if (s.Count == 0)
                {
                    s.Add(a[i]);
                    continue;
                }
                int c=0;
                for (int z = 0; z < s.Count; z++)
                {
                    if (s[z] == a[i])
                    {
                        c++;
                    }
                }
                if (c == 0)
                {
                    s.Add(a[i]);
                }
                c = 0;
            }
             a = new int [s.Count];
            Console.WriteLine();
            for (int i = 0; i < s.Count; i++)
            {
                int d = s[i];
                a[i] = d;
            }
            foreach (int n in a)
            {
                Console.Write(n + " ");
            }
            Console.Read();
        }
    }
}
немного кривовато..но тем не менее
1
1057 / 864 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
30.05.2013, 10:43
0. Используем List
1. Цикл for от 0 до количество-1
2. внутренний цикл while. условие пока найден такой же элемент как текущий, но с меньшим индексом (IndexOf ) и текущий номер не выходит за границы массива.
2.1. удаляем найденный элемент ( ... RemoveAt( ... IndexOf... ))
2.2. при удалении текущий индекс уже указывает на следующий элемент. проверка внутреннего цикла.
1
Неадекват
 Аватар для freeba
1501 / 1237 / 248
Регистрация: 02.04.2010
Сообщений: 2,807
30.05.2013, 10:59
C#
1
2
var a = new int[] { 0, 1, 1, 2, 3, 2, 2 };
            var b = a.Distinct();
2
 Аватар для SandWraith
189 / 189 / 38
Регистрация: 11.04.2009
Сообщений: 497
30.05.2013, 11:04
freeba, IMO неверное решение, см. документацию:
The Distinct<TSource>(IEnumerable<TSource>) method returns an unordered sequence that contains no duplicate values. It uses the default equality comparer, Default, to compare values.
А у ОП-а:
Удалить из массива все одинаковые элементы, оставив их первые вхождения.
Несмотря на то, что, как правило, порядок будет сохранен, это все же никем не гарантируется.
0
18 / 18 / 8
Регистрация: 10.02.2013
Сообщений: 250
30.05.2013, 11:05
Цитата Сообщение от freeba Посмотреть сообщение
1
2
var a = new int[] { 0, 1, 1, 2, 3, 2, 2 };
* * * * * * var b = a.Distinct();
Совсем забыл( а ведь читал когда-то(
0
Неадекват
 Аватар для freeba
1501 / 1237 / 248
Регистрация: 02.04.2010
Сообщений: 2,807
30.05.2013, 11:13
SandWraith, лолшто? Где написано, что порядок в массиве должен остаться прежним? По заданию нужен массив не содержащий повторяющихся элементов, все.
0
 Аватар для SandWraith
189 / 189 / 38
Регистрация: 11.04.2009
Сообщений: 497
30.05.2013, 11:17
freeba, в задании. Массив - это упорядоченное или неупорядоченное множество в C#? Удаление из массива приводит к нарушению порядка оставшихся элементов? Ответь на эти вопросы, затем перечитай фразу " Удалить из массива все одинаковые элементы, оставив их первые вхождения."
0
Неадекват
 Аватар для freeba
1501 / 1237 / 248
Регистрация: 02.04.2010
Сообщений: 2,807
30.05.2013, 11:23
SandWraith,

Массив — это структура данных, содержащая несколько переменных одного типа. (с)msdn
Пруф.
0
 Аватар для SandWraith
189 / 189 / 38
Регистрация: 11.04.2009
Сообщений: 497
30.05.2013, 11:28
Ты не знаешь разницы между упорядоченными структурами и неупорядоченными?
0
Неадекват
 Аватар для freeba
1501 / 1237 / 248
Регистрация: 02.04.2010
Сообщений: 2,807
30.05.2013, 11:33
SandWraith, И к каким же структурам относятся массивы? Пруфы в студию.
0
 Аватар для SandWraith
189 / 189 / 38
Регистрация: 11.04.2009
Сообщений: 497
30.05.2013, 11:38
C# arrays are zero indexed
http://stackoverflow.com/quest... d-in-c-net
http://stackoverflow.com/quest... guaranteed
http://stackoverflow.com/quest... evaluation

Уразумел?
0
Неадекват
 Аватар для freeba
1501 / 1237 / 248
Регистрация: 02.04.2010
Сообщений: 2,807
30.05.2013, 11:48
Цитата Сообщение от SandWraith Посмотреть сообщение
Уразумел?
Ага. Да, при добавлении порядок сохраняется. И что? Где пруф где черным по белому написано. Массив в C# есть упорядоченная структура?
PS: List<T> != T[]. Ссылки ниочем.
0
 Аватар для SandWraith
189 / 189 / 38
Регистрация: 11.04.2009
Сообщений: 497
30.05.2013, 12:00
А что такое "упорядоченная"? Ты не мог бы привести определение?

Я понимаю это следующим образом - при обращении к элементам перечисления порядок гарантируется. Именно это происходит с массивом, потому что "черным по белому написано", что элементы индексирвоаны целыми числами, начиная с нуля. т.е. их порядок соответствует порядку натуральных чисел. Это для тебя не есть "упорядоченное"?

З.Ы. Ссылка http://stackoverflow.com/quest... evaluation
For arrays (note that System.Array implements IEnumerable), it will access elements in order.
0
Неадекват
 Аватар для freeba
1501 / 1237 / 248
Регистрация: 02.04.2010
Сообщений: 2,807
30.05.2013, 12:09
Цитата Сообщение от SandWraith Посмотреть сообщение
Ты не знаешь разницы между упорядоченными структурами и неупорядоченными?
Цитата Сообщение от SandWraith Посмотреть сообщение
А что такое "упорядоченная"? Ты не мог бы привести определение?
Мог бы, но не буду. Вы безнадежны. Вам дали ссылку на официальную документацию, где черным по белому написано чем являются массивы. Вы же пытаетесь приписать им некие свойства которые которых у них нет, но они "подразумеваются", сыпя ссылками на вопросы не имеющих отношения к теме обсуждения (кстати ссылки на другие форумы запрещены - советую их потереть пока модераторы не увидели).

Массив - это набор однотипных элементов. Все. Баста. Только это. Никакой привязки номера ячейки к элементу массива нет. Даже не гарантируется последовательное размещение элементов в памяти, как в С/С++.

На сем дисскусию заканчиваю.
1
 Аватар для SandWraith
189 / 189 / 38
Регистрация: 11.04.2009
Сообщений: 497
30.05.2013, 12:12
Цитата Сообщение от freeba Посмотреть сообщение
Никакой привязки номера ячейки к элементу массива нет.
Что такое "номер"? Есть индекс и он привязан к элементу.

Цитата Сообщение от freeba Посмотреть сообщение
На сем дисскусию заканчиваю.
Сливаешься Написал бы сразу "я не считаю массив упорядоченной структурой", все было бы ясно.
0
18 / 18 / 8
Регистрация: 10.02.2013
Сообщений: 250
30.05.2013, 12:14
что-то мне кажется, что freeba, в данном случае прав....
0
 Аватар для SandWraith
189 / 189 / 38
Регистрация: 11.04.2009
Сообщений: 497
30.05.2013, 17:18
freeba, Ok, ты победил, но давай не будем жадинами, но будет альтруистами, делящимися знаниями – пожалуйста, поделись со мной знаниями по вопросу массивов и понимания вещей в отдельной теме.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.05.2013, 17:18
Помогаю со студенческими работами здесь

Удалить из массива все соседние одинаковые элементы,оставив их первые вхождения
2) Дан целочисленный массив размера N.Удалить из массива все соседние одинаковые элементы,оставив их первые вхождения. Помогите...

Удалить из массива все соседние одинаковые элементы, оставив их первые вхождения
Нуждаюсь в совете мудрых . . . 2)Дан целочисленный массив размера N. Удалить из массива все соседние одинаковые элементы, оставив их...

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

Удалить из массива все одинаковые элементы, оставив их последние вхождения
Дан целочисленный массив размера N. Удалить из массива все одинаковые элементы, оставив их последние вхождения. Не допускается...

Из заданного целочисленного массива удалить все повторяющиеся элементы, оставив только их первые вхождения
Помогите составить программу на С++. Из заданного целочисленного массива удалить все повторяющиеся эле-менты, оставив только их первые...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
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
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru