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

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

Восстановить пароль Регистрация
 
A1eksa
0 / 0 / 0
Регистрация: 23.03.2016
Сообщений: 19
25.09.2016, 13:29     Дан одномерный массив, нужно подсчитать количество различных(не повторяющихся) элементов #1
Дан одномерный массив, нужно подсчитать количество различных(не повторяющихся) элементов.

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

0 1 1 1 6 7 1 4 4 4 4

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

Подсчитать количество различных по значению элементов в массиве C++
C++ Подсчитать количество различных элементов в очереди и вывести их на экран
Подсчитать количество различных элементов C++
Одномерный массив. Вычислить значение функции для отрицательных элементов массива и подсчитать их количество C++
C++ Дан двумерный массив. Определить количество различных элементов в нем
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
GbaLog-
Не Эксперт C++
1522 / 626 / 176
Регистрация: 24.08.2014
Сообщений: 2,541
Записей в блоге: 1
Завершенные тесты: 2
25.09.2016, 13:37     Дан одномерный массив, нужно подсчитать количество различных(не повторяющихся) элементов #2
Цитата Сообщение от A1eksa Посмотреть сообщение
Можно ли как нибудь без него?
Если кол-во элементов неизвестно заранее, то нельзя.
Байт
 Аватар для Байт
13988 / 8819 / 1230
Регистрация: 24.12.2010
Сообщений: 15,975
25.09.2016, 13:38     Дан одномерный массив, нужно подсчитать количество различных(не повторяющихся) элементов #3
A1eksa, загляните вниз этой страницы. Там несколько идентичных тем и, кажется, некоторые из них решены.
GbaLog-
Не Эксперт C++
1522 / 626 / 176
Регистрация: 24.08.2014
Сообщений: 2,541
Записей в блоге: 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;
}
A1eksa
0 / 0 / 0
Регистрация: 23.03.2016
Сообщений: 19
25.09.2016, 13:45  [ТС]     Дан одномерный массив, нужно подсчитать количество различных(не повторяющихся) элементов #5
Цитата Сообщение от Байт Посмотреть сообщение
загляните вниз этой страницы
спасибо, но это не то что нужно. Я не понимаю как вот это все можно реализовать без функций, динамических массивов и т.д. мне нужно использовать только исходный массив и пройтись по нему и найти нужные элементы

Добавлено через 1 минуту
Цитата Сообщение от GbaLog- Посмотреть сообщение
Если кол-во элементов неизвестно заранее, то нельзя.
получается размерность массива должна быть постоянна?
GbaLog-
Не Эксперт C++
1522 / 626 / 176
Регистрация: 24.08.2014
Сообщений: 2,541
Записей в блоге: 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;
}
A1eksa
0 / 0 / 0
Регистрация: 23.03.2016
Сообщений: 19
25.09.2016, 13:52  [ТС]     Дан одномерный массив, нужно подсчитать количество различных(не повторяющихся) элементов #7
Цитата Сообщение от GbaLog- Посмотреть сообщение
Да, если размер будет известен
Допустим, размерность я задала сразу. Как тогда можно реализовать то что мне нужно
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.09.2016, 13:56     Дан одномерный массив, нужно подсчитать количество различных(не повторяющихся) элементов
Еще ссылки по теме:

C++ Подсчитать количество нечетных элементов последовательности, используя одномерный массив
Дан одномерный массив А с n целых числел. Нужно подсчитать количество нечетных чисел C++
Ввести одномерный массив из n элементов. Определить число различных элементов в нем C++

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

Или воспользуйтесь поиском по форуму:
GbaLog-
Не Эксперт C++
1522 / 626 / 176
Регистрация: 24.08.2014
Сообщений: 2,541
Записей в блоге: 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;
}
Yandex
Объявления
25.09.2016, 13:56     Дан одномерный массив, нужно подсчитать количество различных(не повторяющихся) элементов
Ответ Создать тему
Опции темы

Текущее время: 21:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru