2 / 2 / 0
Регистрация: 26.12.2015
Сообщений: 64
1

Дан массив целых чисел. Найти количество различных чисел среди элементов этого массива

05.10.2016, 20:17. Показов 2869. Ответов 10

Студворк — интернет-сервис помощи студентам
Уважаемые форумчане, только начал разбираться в C# Пожалуйста, помогите с написанием кода для задачи
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.10.2016, 20:17
Ответы с готовыми решениями:

Найти количество различных чисел среди элементов этого массива
Дан одномерный целочисленный массив из n элементов. Найти количество различных чисел среди...

Дан массив 10 целых чисел. Найти количество четных элементов массива
Дан массив 10 целых чисел. Найти количество четных элементов массива.Элементы массива вводить с...

Найти количество различных чисел среди элементов массива
Дан массив целых чисел x. Найти количество различных чисел среди элементов этого массива. (Число...

Дан массив целых чисел. Найти наибольшее количество чисел идущих подряд
using System; using System.Collections.Generic; using System.ComponentModel; using...

10
1494 / 1209 / 821
Регистрация: 29.02.2016
Сообщений: 3,601
05.10.2016, 20:34 2
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
       int m = 6;
        int k = 0;
        int[] array = new int[m];
        Random rnd = new Random();
        for (int i = 0; i < m; i++)
        {
           array[i] = rnd.Next(0, 10);
           Console.Write(array[i].ToString() + "\t ");
        }
        var dict = new Dictionary<int, int>();
        foreach (var value in array)
         {
           if (dict.ContainsKey(value))
               dict[value]++;
           else
               dict[value] = 1;
         }
       foreach (var pair in dict)
         {
            k += 1;
         }
       Console.WriteLine("\nnum ={0}",k);
       Console.ReadKey();
1
601 / 485 / 185
Регистрация: 19.04.2016
Сообщений: 1,885
05.10.2016, 21:40 3
mnffy, вариант с Distinct().Count() - устроит?
0
2 / 2 / 0
Регистрация: 26.12.2015
Сообщений: 64
05.10.2016, 21:41  [ТС] 4
afront, спасибо! всё очень круто! но не могли бы Вы написать комментарии к этой программе подробные?
0
601 / 485 / 185
Регистрация: 19.04.2016
Сообщений: 1,885
05.10.2016, 21:41 5
или GroupBy(n=>n).Count();
0
2 / 2 / 0
Регистрация: 26.12.2015
Сообщений: 64
05.10.2016, 21:48  [ТС] 6
EveKS, не понимаю о чём Вы, нужно что-то попроще
0
601 / 485 / 185
Регистрация: 19.04.2016
Сообщений: 1,885
05.10.2016, 21:53 7
mnffy,
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var rnd = new Random();
var arr = new[10];
var dList = new list<int>();
 
for (int i=0;i<arr.Length;i++)
{
arr[i]=rnd.Next(0,10);
}
 
dList.Add(arr[0]);
 
for(int i=1;i<arr.Length;i++)
if(!dList.Contains(arr[i])
dlist.Add(arr[i]);
 
Console.WriteLine(dList.Count());
Console.ReadKey(false);
1
2 / 2 / 0
Регистрация: 26.12.2015
Сообщений: 64
05.10.2016, 21:54  [ТС] 8
EveKS, пожалуйста, комментарии, я много чего не понимаю. почти всё(
0
601 / 485 / 185
Регистрация: 19.04.2016
Сообщений: 1,885
05.10.2016, 21:55 9
Цитата Сообщение от mnffy Посмотреть сообщение
не понимаю о чём Вы
C#
1
2
/* 1) */ arr.Distinct().Count();
/* 2) */ arr.GroupBy(n=>n).Count();
1
1494 / 1209 / 821
Регистрация: 29.02.2016
Сообщений: 3,601
05.10.2016, 21:57 10
Лучший ответ Сообщение было отмечено mnffy как решение

Решение

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

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
       int m = 6;
        int k = 0;
        int[] array = new int[m];
        Random rnd = new Random();
        for (int i = 0; i < m; i++)
        {
           array[i] = rnd.Next(0, 10);                     // создаем случайный массив и печатаем
           Console.Write(array[i].ToString() + "\t "); 
        }
        var dict = new Dictionary<int, int>();
        foreach (var value in array)
         {
             if (dict.ContainsKey(value))   // с помощью Dictionary и ContainsKey производим подсчет разных элементов и их количество
               dict[value]++;
           else
               dict[value] = 1;
         }
       foreach (var pair in dict)
         {
            k += 1;                           // определяем число полученных элементов
         }
       Console.WriteLine("\nnum ={0}",k);
       Console.ReadKey();
1
601 / 485 / 185
Регистрация: 19.04.2016
Сообщений: 1,885
05.10.2016, 22:02 11
mnffy, Класс List<T>
Класс Random
Массивы (Руководство по программированию на C#)
for (Справочник по C#)
List<T>.Contains - метод (T)
if-else (Справочник по C#)
List<T>.Add - метод (T)
Метод Console.WriteLine ()
Метод Console.ReadKey

Добавлено через 55 секунд
Свойство List<T>.Count
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.10.2016, 22:02
Помогаю со студенческими работами здесь

Дан массив целых чисел. Найти сумму элементов массива, кратных А или В
2) В массиве хранятся сведения об оценках 25 учеников по химии. Определить количество неуспеваю¬щих...

Дан массив из 10 целых чисел. Инвертировать биты всех отрицательных чисел и найти сумму элементов полученного
Дан массив из 10 целых чисел. Инвертировать биты всех отрицательных чисел и найти сумму элементов...

Дан массив целых чисел. Определить количество четных элементов и коли-чество элементов, оканчивающихся на цифр
Пожалуйста помогите решить на C#!Дан массив целых чисел. Определить количество четных элементов и...

Дан двумерный массив целых чисел. Определить сумму элементов массива, больших 30
Дан двумерный массив целых чисел. Определить сумму элементов массива, больших 30.


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru