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

Одинаковые элементы - C++

Восстановить пароль Регистрация
 
PRIKOL
0 / 0 / 0
Регистрация: 18.11.2009
Сообщений: 64
05.02.2010, 22:03     Одинаковые элементы #1
Задача по C\C++ :

В неупорядоченном массиве есть совпадающие элементы. Из каждой группы одинаковых элементов оставаить только один, удалив остальные и поджав элементы к его началу.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.02.2010, 22:03     Одинаковые элементы
Посмотрите здесь:

C++ Одинаковые элементы в дереве
C++ Одинаковые элементы в массиве.
C++ ОДинаковые элементы в списке
в массиве одинаковые элементы C++
C++ Одинаковые элементы массива
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
novi4ok
549 / 502 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
05.02.2010, 22:05     Одинаковые элементы #2
ну и что теперь будем делать?
PRIKOL
0 / 0 / 0
Регистрация: 18.11.2009
Сообщений: 64
06.02.2010, 09:43  [ТС]     Одинаковые элементы #3
Извините конечно, но кто нибудь может помочь:В неупорядоченном массиве есть совпадающие элементы. Из каждой группы одинаковых элементов оставаить только один, удалив остальные и поджав элементы к его началу.
А то просто не знаю как: из каждой группы одинаковых элементов оставаить только один, удалив остальные и поджав элементы к его началу.
Андрейка
410 / 214 / 24
Регистрация: 25.03.2009
Сообщений: 716
06.02.2010, 11:02     Одинаковые элементы #4
PRIKOL,
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
#include <iostream>
#include <algorithm>
 
int main()
{
    setlocale(LC_ALL, "RUSSIAN");
 
    int arr[] = {7,6,3,4,5,7,5,6,9,9};
    const size_t N = sizeof(arr) / sizeof(*arr);
 
    std::ostream_iterator <int> _ITER(std::cout," ");
 
    std::cout << "Исходный массив :" << std::endl;
    std::copy(arr, arr+N, _ITER);
 
    std::cout << std::endl;
    std::sort(arr, arr+N);
 
    std::cout << "отсортированный массив :" << std::endl;
    std::copy(arr, arr+N, _ITER);
 
    std::cout << std::endl << "без повторяющихся :" << std::endl;
    std::copy(arr, std::unique(arr, arr+N), _ITER);
 
    return 0;
}
PRIKOL
0 / 0 / 0
Регистрация: 18.11.2009
Сообщений: 64
08.02.2010, 15:36  [ТС]     Одинаковые элементы #5
В неупорядоченном массиве есть совпадающие элементы. Из каждой группы одинаковых элементов оставаить только один, удалив остальные и поджав элементы к его началу.

А можно так:
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.h>
#include<iomanip.h>
#include<conio.h>
int main()
{
int i,j,n,c;
cout<<"Vvedite kol-vo elementov massiva";
cin>>n;
int *a=new int[n];
cout<<"Vvedite elementi massiva";
for(i=0;i<n;i++)
cin>>a[i];
for(i=0;i<n;i++)
cout<<setw(4)<<a[i];
c=0;
for(i=0;i<n;i++)
{for(j=i+1;j<n;j++)
{if(a[j]==a[i])
{a[j]=a[n-1];
n--;}}}
for(i=0;i<n;i++)
{for(j=i+1;j<n;j++)
{if(a[j]==a[i])
{c=j;
while(c<n)
{a[c]=a[c+1];
c++;}
n=n--;}}}
cout<<endl;
for(i=0;i<n;i++)
cout<<setw(4)<<a[i];
getch();
return(0);
}
Только вот получается такое:
Название: Снимок.PNG
Просмотров: 46

Размер: 3.3 Кб
А должно быть: 3 4 2 7
Что нужно исправить в коде?
PRIKOL
0 / 0 / 0
Регистрация: 18.11.2009
Сообщений: 64
08.02.2010, 22:49  [ТС]     Одинаковые элементы #6
Подскажите пожалуйста, что в моём коде нужно исправить(чтобы программа после удаления совпадающих элементов массива(оставляя один элемент) правильно поджимала массив к его началу, а то при тесте программа поджимая меняет порядок цифр(показано на скрине выше) в массиве)? Ответьте(подскажите), заранее ОГРОМНОЕ СПС !!!
Yandex
Объявления
08.02.2010, 22:49     Одинаковые элементы
Ответ Создать тему
Опции темы

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