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

Подсчитать количество уникальных и не уникальных элементов в массиве

29.06.2020, 10:03. Показов 24537. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Ни разу не пробовал вставлять тут код, поэтому могу сделать это криво. Уж, извиняйте
Я новичок в программировании, поэтому мой код может показаться вам смешным, но, надеюсь, вы поможете мне исправить его.
Моя задача - подсчитать кол-во уникальных и не уникальных элементов в массиве, без использования метода Distinct.
Код, который ниже, просто считает все элементы массива и выводит их кол-во в uniqueElements.
При i = 2, он не переходит в else, а делает uniqueElements++;, следовательно, как я думаю, ошибка в условии myArray[i] != myArray[i] + 1.
Не знаю, что я написал, но пожалуйста, помогите исправить код. Буду благодарен

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
using System;
 
namespace ConsoleApp11
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] myArray = { 0, 3, 4, 4, 5, 12, 14, 14, 121, 256, 256 };
 
            int uniqueElements = 0;
 
            int notUniqueElements = 0;
 
            for (int i = 0; i < myArray.Length; i++)
            {
                if (myArray[i] != myArray[i] + 1)
                {
                    uniqueElements++;
                }
                else
                {
                    notUniqueElements++;
                }
            }
 
            Console.WriteLine("Кол-во уникальных элементов массива: " + uniqueElements);
 
            Console.Write("Кол-во не уникальных элементов массива: " + notUniqueElements);
        }
    }
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.06.2020, 10:03
Ответы с готовыми решениями:

Подсчитать количество уникальных значений в массиве
есть список, в нем надо подсчитать количество повторяющихся значений. То есть например : 4, 5, 4, 1, 3, 2 В результате: 4 - 2...

Подсчитать количество уникальных элементов в двумерном числовом массиве
Подсчитать количество уникальных элементов в двумерном числовом массиве . Паскаль ABC.NET

Отсортировать массив и подсчитать количество уникальных чисел в массиве
Что не так????????????? #include &lt;clx.h&gt; #pragma hdrstop #include &lt;clx.h&gt; #pragma hdrstop #include&lt;iostream.h&gt; ...

25
1531 / 532 / 127
Регистрация: 09.01.2018
Сообщений: 1,714
12.08.2020, 13:25
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от RxSplod Посмотреть сообщение
В условии не сказано что массив всегда отсортирован (хотя заданный массив myArray отсортирован).
То есть, подразумевается, что массив может быть не отсортирован.
Так я и написал: Можно отсортировать и выбрать неповторяющиеся одним циклом. Т.е:
1. Сортируем (поскольку массив может быть не отсортирован)
2. Проходим одним циклом и (варианты)
а) считаем количество уникальных элементов
б) сразу забираем уникальные в другой массив
1
3 / 3 / 0
Регистрация: 31.03.2020
Сообщений: 8
12.08.2020, 23:06
Цитата Сообщение от escoult Посмотреть сообщение
То есть, подразумевается, что массив может быть не отсортирован.
Так я и написал: Можно отсортировать и выбрать неповторяющиеся одним циклом. Т.е:
1. Сортируем (поскольку массив может быть не отсортирован)
2. Проходим одним циклом и (варианты)
а) считаем количество уникальных элементов
б) сразу забираем уникальные в другой массив
Чувак, да у тебя получится посчитать уникальные элементы одним циклом, но не получится этим же циклом записать, т.к. нужно изначально указать длину массива, а до подсчёта уникальных элементов ты ее не знаешь.
0
1531 / 532 / 127
Регистрация: 09.01.2018
Сообщений: 1,714
12.08.2020, 23:38
Цитата Сообщение от RxSplod Посмотреть сообщение
Чувак, да у тебя получится посчитать уникальные элементы одним циклом, но не получится этим же циклом записать, т.к. нужно изначально указать длину массива, а до подсчёта уникальных элементов ты ее не знаешь.
"Чувак"?
Ты давай без фамильярностей. Там во дворе у себя будешь так обращаться, или на улице. Здесь форум культурный, даже на "ты" к незнакомым людям крайне редко.

Мне не нужно ее знать. На выбор.

Массив:
C#
1
2
3
4
5
6
7
8
9
10
11
            Array.Sort(myArray);
            var dist = new int[myArray.Length]; //Suppose that all elements are unique
 
            var unique = 0;
            for (int i = 0; i < myArray.Length - 1; i++)
            {
                if (myArray[i] != myArray[i + 1]) dist[unique++] = myArray[i];
            }
 
            dist[unique++] = myArray[^1]; //last is always unique
            Array.Resize(ref dist, unique);
Последовательность:
C#
1
2
3
4
5
6
7
8
9
10
        static IEnumerable<int> Distinct (int[] arr)
        {
            Array.Sort(arr);
            for (int i = 0; i < arr.Length - 1; i++)
            {
                if (arr[i] != arr[i + 1]) yield return arr[i];
            }
 
            yield return arr[^1]; //last is always unique
        }
Можно еще использовать список, очередь,
0
3 / 3 / 0
Регистрация: 31.03.2020
Сообщений: 8
12.08.2020, 23:59
Цитата Сообщение от escoult Посмотреть сообщение
"Чувак"?
Ты давай без фамильярностей. Там во дворе у себя будешь так обращаться, или на улице. Здесь форум культурный, даже на "ты" к незнакомым людям крайне редко.
Простите сударь, что задел ваше самолюбие, как мне казалось здесь сидят простые люди, которые хотят чему-то научится.
Спасибо за объяснение, просто я предложил решение, в котором не используются классы и методы. Я понимаю, что так с массивами никто не работает, но для таких новичков как я, думаю будет полезно поупражняться с циклами.
0
1531 / 532 / 127
Регистрация: 09.01.2018
Сообщений: 1,714
13.08.2020, 00:36
Цитата Сообщение от RxSplod Посмотреть сообщение
Простите сударь, что задел ваше самолюбие, как мне казалось здесь сидят простые люди, которые хотят чему-то научится.
Спасибо за объяснение, просто я предложил решение, в котором не используются классы и методы. Я понимаю, что так с массивами никто не работает, но для таких новичков как я, думаю будет полезно поупражняться с циклами.
Все верно, люди простые, отзывчивые, чему то учатся. Потому не нужно употреблять жаргонных обращений из пивной за углом. Вы не задели мое самолюбие. Элементарная этика.
ОК, проехали.

В смысле с несортированным массивом? Ну разве что в качестве упражнения.
0
3 / 3 / 0
Регистрация: 31.03.2020
Сообщений: 8
13.08.2020, 00:52
Цитата Сообщение от escoult Посмотреть сообщение
В смысле с несортированным массивом? Ну разве что в качестве упражнения.
Да с несортированным и в качестве упражнения. Т.к. вопрос задал такой же новичок, как я, вот и посоветовал такое решение для новичков, которые с классами и методами вплотную ещё не работали.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.08.2020, 00:52

Отсортировать данный массив и подсчитать количество уникальных чисел в массиве
Задание: Отсортировать данный массив и подсчитать количество уникальных чисел в массиве. Внимание! Входные данные и выходные данные...

Количество уникальных элементов в целочисленном массиве
Народ, кто может помогите. Задача в следующем: надо написать на qbasic алгоритм подсчета кол-ва уникальных элементов в целочисленном...

В заданном целочисленном массиве определить количество уникальных элементов
Дан массив a из n целых чисел. Требуется определить количество различных элементов.

Узнать количество уникальных элементов в массиве, занести их в другой массив
Здравствуйте! Массив состоит из элементов integer. a=(0,1,3,5,7,3,7,7,7,0,0,0,1,0,3,5,7,7,7) Для a кол-во уникальных элементов = 5 ...

В заданном целочисленном массиве найти количество уникальных элементов и сумму всех элементов
В массиве, состоящем из п целых элементов, вычислить: - количество различных элементов; - сумму элементов массива, расположенных после...


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

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Новые блоги и статьи
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы ## О чём эта статья В процессе построения ОДУ-модели (система дифференциальных. . .
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет) Содержание проекта Симуляция вековой (50 лет) экологической сукцессии в почве леса Основные участники: АМ-гриб, ЭКМ-гриб,. . .
сукцессия 23. Более физиологичная физиология, более экологичная экология, более диффурные диффуры.
anaschu 12.07.2026
Что реально нашли и починили за эти 5 часов Правило Линдемана (КПД конверсии сахара в тело, kEff) — раньше 100% полученного углерода шло прямо в биомассу гриба; теперь только kEff=0. 5 (после. . .
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru