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

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

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

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

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

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

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

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

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

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

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

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

Поменять местами элементы массива, разные по знаку, но одинаковые по модулю - C++
Здравствуйте! Помогите, пожалуйста с программой. Программа: Дан массив с целыми числами. Нужно найти одинаковые по модулю, но разные по...

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


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
David Sylva
1285 / 947 / 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;
}
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;
}
David Sylva
1285 / 947 / 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;
}
soon
2538 / 1303 / 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;
}
IceStrength
0 / 0 / 0
Регистрация: 25.10.2014
Сообщений: 56
27.11.2014, 18:40     Удалить одинаковые элементы массива #6
....
Yandex
Объявления
27.11.2014, 18:40     Удалить одинаковые элементы массива
Ответ Создать тему
Опции темы

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