Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.10.2013, 15:49   #1
Loka
Пользователь
 
Регистрация: 02.12.2010
Сообщений: 15
По умолчанию Найти кол-во вхождений каждого числа в массиве (целочисленный)

Здравствуйте,
есть массив целых чисел,надо найти количество вхождений каждого числа в массиве, есть код,но я что-то не так делаю,помогите понять в чем ошибка,пожалуйста.
Код:
Код:
 int[] mas5 = {1,1,2,2,2,3,3,3,3 };
        int[] res = new int [3];//в этот массив результат выведется (в данном случае должно быть 234)

        private void ch_count()
        {
            int count;
            int k = 0;
            for (int j = 0; j < res.Length; j++)
            {
                count = 1;
                for (int i = k; i < mas5.Length-1; i++)
                {
                    if (mas5[i] == mas5[i + 1])
                    {
                        count++;
                    }
                    else
                    {
                        res[j] = count;
                        break;
                    }
                    k = count;
                }
            }
            textBox1.Text = res[1].ToString();
        }
Loka вне форума Ответить с цитированием
Старый 17.10.2013, 16:11   #2
Loka
Пользователь
 
Регистрация: 02.12.2010
Сообщений: 15
По умолчанию

или если лень в коде разбираться,то напишите псевдокод плиз
или подскажите в какой книге посмотреть
мне этот алгоритм очень нужен
Loka вне форума Ответить с цитированием
Старый 17.10.2013, 17:07   #3
Loka
Пользователь
 
Регистрация: 02.12.2010
Сообщений: 15
По умолчанию

все не надо,я разобралась уже
26 просмотров и ни одного ответа?!
Loka вне форума Ответить с цитированием
Старый 17.10.2013, 17:19   #4
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Код:
for(int i = 0; i < mas5.Length; ++i)
{
    res[mas5[i]-1]++;
}
textBox1.Text = "";
for(int i = 0; i < res.Length; ++i)
{
    textBox1.Text += res[i].ToString();
}
Примерно так, мб потребует некоторой доработки.

ПС. Молодцом, что разобрались сами )
phomm вне форума Ответить с цитированием
Старый 17.10.2013, 17:55   #5
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Loka

есть массив целых чисел,надо найти количество вхождений каждого числа в массиве,

26 просмотров и ни одного ответа?!

не те просмотры, видимо... :D

Код:
int[] mas5 = { 1, 1, 2, 2, 2, 3, 3, 3, 3 };
foreach (var x in mas5.GroupBy(p => p))
	Console.WriteLine("{0} => {1}", x.Key, x.Count());
Rififi вне форума Ответить с цитированием
Старый 18.10.2013, 14:19   #6
Loka
Пользователь
 
Регистрация: 02.12.2010
Сообщений: 15
По умолчанию

Цитата:
Сообщение от Rififi Посмотреть сообщение
Loka

есть массив целых чисел,надо найти количество вхождений каждого числа в массиве,

26 просмотров и ни одного ответа?!

не те просмотры, видимо... :D

Код:
int[] mas5 = { 1, 1, 2, 2, 2, 3, 3, 3, 3 };
foreach (var x in mas5.GroupBy(p => p))
	Console.WriteLine("{0} => {1}", x.Key, x.Count());
ого для меня это очень круто)
мне надо хранить количество вхождений (то есть x.Count) в массиве, как это сделать?
Loka вне форума Ответить с цитированием
Старый 18.10.2013, 15:25   #7
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Loka

мне надо хранить количество вхождений (то есть x.Count) в массиве, как это сделать?

зачем массив? GroupBy уже возвращает всю необходимую инфу по количеству вхождений.


впрочем,

var arr = mas5.GroupBy(p => p).Select(p => p.Count()).ToArray();

вот тебе будет массив вхождений
Rififi вне форума Ответить с цитированием
Старый 19.10.2013, 16:03   #8
Loka
Пользователь
 
Регистрация: 02.12.2010
Сообщений: 15
По умолчанию

Цитата:
Сообщение от Rififi Посмотреть сообщение
Loka

мне надо хранить количество вхождений (то есть x.Count) в массиве, как это сделать?

зачем массив? GroupBy уже возвращает всю необходимую инфу по количеству вхождений.


впрочем,

var arr = mas5.GroupBy(p => p).Select(p => p.Count()).ToArray();

вот тебе будет массив вхождений
спасибо большое) массив мне нужен потому что это отдельная функция для большой программы,потом из массива значения вытаскиваются)
Loka вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В целочисленном массиве Х(N) после каждого четного числа вставить максимальный элемент массива Артём555 Visual C++ 0 18.12.2012 19:57
Найти сумму и кол-во элементов каждого столбца кратных К1 и К2 Richik123 Помощь студентам 0 27.11.2012 16:13
Найти сумму и кол-во элементов каждого столбца кратных К1 и К2 (Delphi) Richik123 Помощь студентам 1 20.11.2012 15:48
В массиве найти кол-во нечетных чисел расположенных после второго большего числа Desvi Помощь студентам 0 29.04.2010 17:12
Найти кол-во вхождений подстроки в строку Kuzya59 Общие вопросы Delphi 4 21.09.2009 12:46