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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 112, средняя оценка - 4.66
AZIZBEK
0 / 0 / 0
Регистрация: 16.06.2012
Сообщений: 37
#1

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

19.07.2012, 10:16. Просмотров 17013. Ответов 5
Метки нет (Все метки)

Создать массив из 20 элементов, из массива удалить одинаковые элементы массива и вывести на экран
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.07.2012, 10:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Удалить одинаковые элементы массива (C++):

Удалить из массива все одинаковые элементы - C++
Дан целочисленный массив размера N. Удалить из массива все одинаковые элементы, оставив их последние вхождения. Нужен код именно на Си, но...

Удалить из массива все одинаковые элементы, оставив их первые вхождения - C++
Дан целочисленный массив размера N. Удалить из массива все одинаковые элементы, оставив их первые вхождения. Первые вхождения это как?

Дан целочисленный массив размера N. Удалить из массива все одинаковые элементы, оставив их последние вхождения - C++
#include <iostream> #include <ctime> using namespace std; int main() { setlocale(LC_ALL, "rus"); int n, i; time_t t;...

Дан целочисленный массив размера N. Удалить из массива все одинаковые элементы, оставив их первые вхождения. - C++
Дан целочисленный массив размера N. Удалить из массива все одинаковые элементы, оставив их первые вхождения.

Как удалить одинаковые элементы из списка? - C++
Нужно удалить из списка повторяющиеся элементы. Например в списке 1 1 0 0 3 3 оставить только 1 0 3. #include<iostream> ...

Атд список. Удалить одинаковые элементы. - C++
Здравствуйте!!!!! Вот еще одна проблемка, расчитываю на Вашу помощь! Суть такова! Есть АТД список, в нем нужно оставить...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
David Sylva
1286 / 948 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
19.07.2012, 10:56 #2
Можно так с помощью векторов

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
#include <iostream> 
#include <algorithm>
#include <ctime> 
#include <vector>
#include <cstdlib>
using namespace std; 
int main() 
{ 
    const int size = 20; // размер
    int array[size]; // массив
    srand((unsigned) time(0)); // для случайных чисел
    int i;  
 
    for ( i = 0; i < size; i++) 
        array[i] = rand() % 10; // заполняем случайными числами
 
    vector<int> vec (array, array+size);  // помещаем в вектор
    vector<int> :: iterator it; // итератор
 
    
    for ( i = 0; i < size; i++) 
        cout << array[i] << " ";  // исходный мвссив
    cout << endl;
    sort(vec.begin(), vec.end()); // сортирум вектор
    it = unique(vec.begin(), vec.end()); // удаляем повторяющиеся элементы
    vec.resize(it - vec.begin());
    
 
    for ( i = 0; i < vec.size(); i++) // выводим
        cout << vec[i] << " ";  
    cout << endl;
}
2
rinat_w
89 / 85 / 4
Регистрация: 13.11.2011
Сообщений: 192
Завершенные тесты: 1
19.07.2012, 11:06 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<iostream>
#include<ctime>
using namespace std;
int main(){
    int a[20];
    srand(time(0));
    for (int i=0; i<20; i++){
        a[i]=rand()%20;
        cout<<a[i]<<" ";
    }
    cout<<endl;
    for (int i=0; i<20; i++){
        bool flag=true;
        for (int j=0; j<20; j++)
            if (i-j!=0 && a[i]==a[j]) flag=false;
        if (flag) cout<<a[i]<<" ";
    }
    cout<<endl;
    system("pause");
    return 0;
}
1
David Sylva
1286 / 948 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
19.07.2012, 11:24 #4
Мой код неверный там удаляются все повторы.

Добавлено через 11 минут
Предлагаю свой вариант он слегка отличен от варианта rinata_W с использованием счётчика


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
#include <iostream> 
#include <ctime> 
#include <cstdlib>
using namespace std; 
int main() 
{   
    const int size = 20;
    int array[size]; 
    int i, j;  
    srand((unsigned) time(0));
    int count = 0;
 
    for ( i = 0; i < size; i++) 
        array[i] = rand() % 20; 
 
    for ( i = 0; i < size; i++) 
        cout << array[i] << " "; 
    cout << endl;  
 
    for ( i = 0; i < size; i++) 
    { 
        int temp = array[i]; 
 
        for ( j = 0; j < size; j++) 
            if(temp == array[j]) 
                count++; 
        if(count == 1) 
            cout << temp << " "; 
        count = 0; 
    }  
    cout << endl;
}
1
soon
2540 / 1305 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
19.07.2012, 11:29 #5
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <vector>
#include <unordered_set>
 
int main()
{
    std::vector<int> v({1, 2, 3, 4, 5, 2, 4});
    std::unordered_set<int> us(v.begin(), v.end());
    for(const auto& elem: us)
        std::cout << elem << ' ';
    std::cout << std::endl;
    return 0;
}
0
IceStrength
0 / 0 / 0
Регистрация: 25.10.2014
Сообщений: 56
27.11.2014, 18:40 #6
....
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.11.2014, 18:40
Привет! Вот еще темы с ответами:

Заданная матрица размером NxM. Удалить те строки, в которых встречаются одинаковые элементы - C++
Народ помогите пож нужно очень срочно. совсем запутался с этим задание,буду благодарен за помощь. Заданная матрица размером NxM....

Одинаковые элементы массива - C++
Надо определить сколько в массиве одинаковых элементов, по разному пробывала и никак не получается. #include &lt;iostream&gt; #include...

Поменять одинаковые элементы массива на нули - C++
Программа должна менять одинаковые элементы на нули, но что-то пошло не так. Она меняет не все или меняет не то. int main() { int...

Одинаковые парные элементы двумерного массива по строкам - C++
Не могу сделать так чтобы программа искала одинаковые парные элементы по строкам и по столбцам (для определения пар одинаковых элементов...


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

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

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