Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/140: Рейтинг темы: голосов - 140, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 21.08.2016
Сообщений: 5

Найти и вывести уникальные элементы массива

21.08.2016, 14:11. Показов 28692. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
3. В массиве найти элементы, которые в нем встречаются только один раз, и вывести их на экран. То есть найти и вывести уникальные элементы массива.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.08.2016, 14:11
Ответы с готовыми решениями:

Вывести уникальные элементы массива
Кто поможет решить на c++ такую задачу. В массиве имеются различные элементы (пример: a={1,6,2,3,3,4,2,5,1}) нужно вывести разные(не...

Вывести уникальные элементы массива
напишите программу, печатающую уникальные элементы массива из 20 элементов.

Найти уникальные элементы массива
пожалуйста объясните написанный код include<stdio.h> #include<stdlib.h> #include<math.h> #include<iostream> using namespace...

11
Эксперт С++
1624 / 954 / 782
Регистрация: 06.02.2016
Сообщений: 2,452
Записей в блоге: 31
21.08.2016, 15:26
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
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
int main() {
    srand(time(NULL));
    const int k=10;
    int a[k];
    for(size_t i=0; i<k; i++) {
        a[i]=rand()%20;
        cout<<a[i]<<" ";
    }
    cout<<endl;
    for(size_t i=0; i<k; i++) {
        int n=0;
        for(size_t j=0; j<k; j++) {
            if(a[i]!=a[j]) {
                n++;
            }
        }
        if(n==k-1) {
            cout<<a[i]<<" ";
        }
    }
 
    return 0;
}
0
 Аватар для lawr
385 / 279 / 478
Регистрация: 09.05.2014
Сообщений: 769
22.08.2016, 16:06
Peoples, ябтак сделал:
C++
1
2
3
4
5
6
7
for(size_t i=0; i<k; i++) {
        size_t j=0;
        while (a[i]!=a[j]&&i!=j)
           j++;
        if(j==k) 
            cout<<a[i]<<" ";
    }
0
331 / 283 / 78
Регистрация: 02.08.2016
Сообщений: 1,008
22.08.2016, 16:34
Придумал вот такой велосипед)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
template <typename T>
std::vector<T> find_unique(std::vector<T> array) {
    for (int i = 0; i < array.size(); i++) 
    {
        bool unique = true;
        for(int j = i+1; j < array.size(); j++)
        {// перебираем все элементы дальше i-го
            if(array[i] == array[j])// если нашли такой же
            {
                unique = false;// ставим флаг в false
                array.erase(array.begin()+j);//удаляем элемент
                j--;
            }
        }
        if(!unique)//если элемент оказался не уникальным
        {
            array.erase(array.begin()+i);//удаляем из вектора
            i--;
        }
    }
    return array;
}
Добавлено через 6 минут
Цитата Сообщение от lawr Посмотреть сообщение
C++
1
2
3
4
5
6
7
for(size_t i=0; i<k; i++) {
        size_t j=0;
        while (a[i]!=a[j]&&i!=j)
           j++;
        if(j==k) 
            cout<<a[i]<<" ";
    }
и как это должно работать?
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
22.08.2016, 16:36
DevAlone, http://en.cppreference.com/w/cpp/algorithm/unique там же чуть ниже пример кода.
1
331 / 283 / 78
Регистрация: 02.08.2016
Сообщений: 1,008
22.08.2016, 16:46
Я думал про сортировку, но быстро ли она будет выполняться?
0
 Аватар для Babysitter
245 / 139 / 53
Регистрация: 23.11.2015
Сообщений: 394
22.08.2016, 16:57
если производительность не играет роли, то можно и так
C++
1
2
3
4
    std::set<int> uniq(std::begin(A), std::end(A));
    for (auto i : uniq)
        std::cout << i << " ";
    std::cout << std::endl;
Добавлено через 9 минут
точнее так
C++
1
2
    for (auto i : std::set < int > { std::begin(A), std::end(A) })
        std::cout << i << " ";
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
22.08.2016, 17:10
Цитата Сообщение от DevAlone Посмотреть сообщение
Я думал про сортировку, но быстро ли она будет выполняться?
А поиск по не отсортированному массиву перебором быстро выполняется?

В конечном счете все будет зависеть от исходной последовательности, насколько она рандомная.
0
0 / 0 / 0
Регистрация: 11.05.2016
Сообщений: 29
09.08.2020, 17:50
расскажите пожалуйста, что значит переменная n?


C++
1
2
3
4
5
6
7
8
9
10
11
12
for(size_t i=0; i<k; i++) {
        int n=0;
        for(size_t j=0; j<k; j++) {
            if(a[i]!=a[j]) {
                n++;
            }
        }
        if(n==k-1) // особенно эта стрoка  
       {
            cout<<a[i]<<" ";
        }
    }
0
11 / 10 / 5
Регистрация: 25.07.2020
Сообщений: 302
09.08.2020, 18:06
skyone, покажите полный код лучше.
0
653 / 466 / 183
Регистрация: 23.04.2019
Сообщений: 1,987
09.08.2020, 18:11
Цитата Сообщение от Jorka Посмотреть сообщение
покажите полный код лучше.
первый пост

Добавлено через 2 минуты
Цитата Сообщение от Babysitter Посмотреть сообщение
точнее так
endl забыл в конце)
0
11 / 10 / 5
Регистрация: 25.07.2020
Сообщений: 302
09.08.2020, 18:13
skyone, а, это n считает кол-во элементов которые не равны проверяемому и если оно равно кол-ву элеметнов массива-1, то его выводят на экран.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.08.2020, 18:13
Помогаю со студенческими работами здесь

Найти в массиве повторяющиеся элементы и записать только уникальные элементы в новый массив из первого массива
Всем привет. Можете помочь написать такой алгоритм, нужно в одном массиве найти повторяющиеся элементы, а затем вставить в другой массив...

Вывести на экран "уникальные" элементы массива
1 Есть массив, вывести на экран все элементы, которые встречаются хотя-бы дважды 2 Вывести на экран &quot;уникальные&quot; элементы. ...

Вывести уникальные элементы списка
Задача звучит так : Дан список. Выведите те его элементы, которые встречаются в списке только один раз. Элементы нужно выводить в том...

Вывести уникальные элементы двух динамических массивов
Дано два динамических массива одинаковой размерности. Нужно вывести уникальные элементы. Мой код сравнивает элемент первого массива со...

Вывести на экран уникальные элементы вектора стринг
Я перепробовал множество способов, просмотрел темы на этом форуме, но для стрингового вектора ни один способ не подошел. Задача:...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru