Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
A1eksa
0 / 0 / 0
Регистрация: 23.03.2016
Сообщений: 29
#1

Дан одномерный массив, нужно подсчитать количество различных(не повторяющихся) элементов - C++

25.09.2016, 13:29. Просмотров 220. Ответов 7
Метки нет (Все метки)

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

Начала делать и вроде бы все легко, но не получилось. Решила сделать с помощью интернета, но там все через динамический массив. Можно ли как нибудь без него?
Например:
Дан вот такой массив

0 1 1 1 6 7 1 4 4 4 4

Ответ: 5
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.09.2016, 13:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Дан одномерный массив, нужно подсчитать количество различных(не повторяющихся) элементов (C++):

Дан одномерный массив А с n целых числел. Нужно подсчитать количество нечетных чисел - C++
1. Дан одномерный массив А с n целых числел. Нужно подсчитать количество нечетных чисел.

Дан двумерный массив. Определить количество различных элементов в нем - C++
Помогите плиз решить задачку. Дан двумерный массив. Определить количество различных элементов в нем.

Подсчитать количество нечетных элементов последовательности, используя одномерный массив - C++
1 Задача:Дана последовательность целых чисел.Подсчитать кол-во нечетных элементов используя одномерный массив.

Одномерный массив. Вычислить значение функции для отрицательных элементов массива и подсчитать их количество - C++
Дано одномерный массив Р состоящий из 32 элементов. Вычислить значение функции для отрицательных элементов массива и подсчитать их...

Дан целочисленный массив А[п], среди элементов есть одинаковые. Создать массив из различных элементов А[п] - C++
Помогите пожалуйста с поставленной задачей: Дан целочисленный массив А, среди элементов есть одинаковые. Создать массив из различных...

Подсчитать количество различных элементов - C++
Подсчитать количество различных элементов в каждой из строк двумерного массива. Определить функцию подсчета различных элементов.

7
GbaLog-
Любитель чаепитий
2899 / 1356 / 333
Регистрация: 24.08.2014
Сообщений: 4,794
Записей в блоге: 1
Завершенные тесты: 2
25.09.2016, 13:37 #2
Цитата Сообщение от A1eksa Посмотреть сообщение
Можно ли как нибудь без него?
Если кол-во элементов неизвестно заранее, то нельзя.
0
Байт
Эксперт C
16145 / 10423 / 1553
Регистрация: 24.12.2010
Сообщений: 19,743
25.09.2016, 13:38 #3
A1eksa, загляните вниз этой страницы. Там несколько идентичных тем и, кажется, некоторые из них решены.
0
GbaLog-
Любитель чаепитий
2899 / 1356 / 333
Регистрация: 24.08.2014
Сообщений: 4,794
Записей в блоге: 1
Завершенные тесты: 2
25.09.2016, 13:39 #4
Если можно использовать STL, то можно так.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
///////////////////////////////////////////////////////////
#include <iostream>
#include <set>
///////////////////////////////////////////////////////////
int main()
{
    std::set<int> array;
    int tmp{};
    while( std::cin >> tmp )
    {
        array.insert( tmp );
    }
    std::cout << array.size() << std::endl;
}
0
A1eksa
0 / 0 / 0
Регистрация: 23.03.2016
Сообщений: 29
25.09.2016, 13:45  [ТС] #5
Цитата Сообщение от Байт Посмотреть сообщение
загляните вниз этой страницы
спасибо, но это не то что нужно. Я не понимаю как вот это все можно реализовать без функций, динамических массивов и т.д. мне нужно использовать только исходный массив и пройтись по нему и найти нужные элементы

Добавлено через 1 минуту
Цитата Сообщение от GbaLog- Посмотреть сообщение
Если кол-во элементов неизвестно заранее, то нельзя.
получается размерность массива должна быть постоянна?
0
GbaLog-
Любитель чаепитий
2899 / 1356 / 333
Регистрация: 24.08.2014
Сообщений: 4,794
Записей в блоге: 1
Завершенные тесты: 2
25.09.2016, 13:51 #6
Цитата Сообщение от A1eksa Посмотреть сообщение
получается размерность массива должна быть постоянна?
Да, если размер будет известен только во время выполнения программы, то нужен "динамический массив"(в кавычках потому, что в С++ нет динамических массивов, но это другая история, поэтому будем называть вот так).

Добавлено через 4 минуты
Вот, возможно, перекостылил, но уж как придумал.
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
///////////////////////////////////////////////////////////
#include <iostream>
///////////////////////////////////////////////////////////
int main()
{
    int n{};
    int unique_elem{};
    std::cin >> n;
    int* array = new int[n];
    
    for( int i{}; i < n; ++i )
    {
        std::cin >> array[i];
        if( i == 0 )
        {
            ++unique_elem;
            continue;
        }
        
        bool continue_ = false;
        for( int j{}; j < i; ++j )
        {
            if( array[i] == array[j] )
            {
                continue_ = true;
                break;
            }
            
        }
        if( !continue_ )
            ++unique_elem;
    }
    std::cout << unique_elem << std::endl;
}
0
A1eksa
0 / 0 / 0
Регистрация: 23.03.2016
Сообщений: 29
25.09.2016, 13:52  [ТС] #7
Цитата Сообщение от GbaLog- Посмотреть сообщение
Да, если размер будет известен
Допустим, размерность я задала сразу. Как тогда можно реализовать то что мне нужно
0
GbaLog-
Любитель чаепитий
2899 / 1356 / 333
Регистрация: 24.08.2014
Сообщений: 4,794
Записей в блоге: 1
Завершенные тесты: 2
25.09.2016, 13:56 #8
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от A1eksa Посмотреть сообщение
Допустим, размерность я задала сразу. Как тогда можно реализовать то что мне нужно
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
///////////////////////////////////////////////////////////
#include <iostream>
///////////////////////////////////////////////////////////
int main()
{
    const int n{10};
    int unique_elem{};
    int array[n];
    
    for( int i{}; i < n; ++i )
    {
        std::cin >> array[i];
        if( i == 0 )
        {
            ++unique_elem;
            continue;
        }
        
        bool continue_ = false;
        for( int j{}; j < i; ++j )
        {
            if( array[i] == array[j] )
            {
                continue_ = true;
                break;
            }
            
        }
        if( !continue_ )
            ++unique_elem;
    }
    std::cout << unique_elem << std::endl;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.09.2016, 13:56
Привет! Вот еще темы с ответами:

Ввести одномерный массив из n элементов. Определить число различных элементов в нем - C++
Возникла небольшая проблема. Нужно сделать элементарное задание, но чтобы было несколько функций пользователя. Задание: Ввести одномерный...

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

Подсчитать количество различных элементов в очереди и вывести их на экран - C++
1. Подсчитать число различных элементов в очереди и вывести их на экран 2. 3. На контрольной были эти задачи. Нужно их решить....

Дан одномерный массив A (n) подсчитать кол-во не совершенных чисел в нём (совершенные = сумме своих делителей - C++
Дан одномерный массив A (n) подсчитать кол-во не совершенных чисел в нём (совершенные = сумме своих делителей)


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

Или воспользуйтесь поиском по форуму:
8
Yandex
Объявления
25.09.2016, 13:56
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru