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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.02.2015, 23:26   #1
19dmitry19
Пользователь
 
Регистрация: 05.03.2014
Сообщений: 14
По умолчанию копирование элементов массива без их дубликатов

Здравствуйте уважаемые форумчане, прошу вашей помощи, самому мне не разобраться.

Вопрос заключается в следующем:
Дан одномерный массив, заполненный случайными числами, некоторые из них повторяются.
Мне необходимо сформировать новый массив, содержащий элементы первого массива, но без их копий.
Пример:
Массив 1: 1, 7, 4, 0, 9, 4, 8, 8, 2, 4.
Массив 2: 1, 7, 4, 0, 9, 8, 2.

Возможно ли это реализовать в обычном массиве, не используя ассоциативные?
19dmitry19 вне форума Ответить с цитированием
Старый 11.02.2015, 01:27   #2
19dmitry19
Пользователь
 
Регистрация: 05.03.2014
Сообщений: 14
По умолчанию

Прошу прощения за беспокойство. Разобрался.
Вот, что получилось:
Код:
#include<iostream>
#include<ctime>
using namespace std;
const int MAX=10;

int main()
{
	setlocale (LC_ALL, "RUSSIAN");
	srand((unsigned)time(NULL));
	int arr[MAX];
	int arr2[MAX];
	int n = MAX;
	
	for(int i=0; i<n; i++)
	{
		arr[i]=rand()%10;
		cout << arr[i] << "  ";
	}

	for(int i=0; i<n; i++)
	{
		for(int j=0; j<n; j++)
		{
			if(arr[i]==arr[j] && i!=j)
			{
				for(int k=j; k<n; k++)
					arr[k]=arr[k+1];
				n--;
			}
		}
	}

	cout << "\n\n" << endl;

	for(int i=0; i<n; i++)
	{
		arr2[i]=arr[i];
	}

	for(int i=0; i<n; i++)
		cout << arr2[i] << "  ";

	cout << "\n\n" << endl;
	system ("PAUSE");
	return 0;
}
19dmitry19 вне форума Ответить с цитированием
Старый 11.02.2015, 16:13   #3
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

http://rextester.com/EOJS97891

Код:
#include <algorithm>  
#include <iostream>   

int main () 
{
    
    int arr[] = {10,20,20,20,30,30,20,20,10};          
    enum { size = sizeof(arr)/sizeof(arr[0]) };
    
    std::sort(arr, arr + size); 
    auto end = std::unique (arr, arr + size); 

    std::cout << "arr contains:";
    for (int* i = arr; i!=end;++i )
        std::cout << ' ' << *i;
    std::cout << '\n';
}
_Bers вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Возможен ли подсчет количества положительных элементов массива без указателей? SERG1990 Общие вопросы C/C++ 7 16.03.2012 12:07
Вывод элементов массива.Изменение элементов массива. Vesnushka18 Помощь студентам 6 09.06.2011 13:05
Выделение, поиск дубликатов и копирование nbw Microsoft Office Excel 2 04.06.2011 12:55
поиск дубликатов файлов(имя, тип, размер). Вывод дубликатов на экран с отображением их пути faraon1792 Помощь студентам 4 19.03.2010 23:46