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

Вывести элементы массива, которые повторяются ровно два раза - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.86
luigration
2 / 2 / 0
Регистрация: 04.01.2013
Сообщений: 154
26.11.2013, 22:49     Вывести элементы массива, которые повторяются ровно два раза #1
Массив создать динамический. Язык - С++

Пример:
Пусть даны числа: 1,2,5,2,3,3,3,
Тогда вывести: 2
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2013, 22:49     Вывести элементы массива, которые повторяются ровно два раза
Посмотрите здесь:

Удаление из массива всех элементов, встречающихся ровно два раза C++
C++ Удалить из массива все элементы, встречающиеся ровно два раза
C++ Подправьте задачу (удалить из массива элементы которые встречаются ровно 2 раза)
C++ Найти и вывести на экран все элементы, которые которые повторяются более N/2 раз
C++ Из массива А удалить все элементы, которые встречаются в В ровно 2 раза
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Alex566
 Аватар для Alex566
240 / 152 / 18
Регистрация: 03.04.2013
Сообщений: 317
27.11.2013, 01:00     Вывести элементы массива, которые повторяются ровно два раза #2
Мастер Йода преподает С++?
Это ли вы имели введу юный падаван?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
 
int main()
{
    setlocale(0,"");
    int n,*m;
    cout<<"Введите количество элементов - ";
    cin>>n;
    m=(int*)malloc(sizeof(int)*n);//Выделение памяти под динамический массив
    for(int i=0;i<n;i++)
    {
        cout<<i+1<<"-й элемент - ";
        cin>>m[i];
    }
    cout<<"Вы ввели массив: ";
    for(int i=0;i<n;i++) cout<<m[i]<<" ";
    free (m);//Удаление памяти под динамический массив.
    system("pause>null");
    return 0;
}
Liden
17 / 17 / 2
Регистрация: 19.11.2013
Сообщений: 83
27.11.2013, 14:57     Вывести элементы массива, которые повторяются ровно два раза #3
luigration, бился с задачей целый день) проблема у меня была в том, что выводилось повторяющее число 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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include "stdafx.h"
#include <iostream>
#include <cstdlib>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_CTYPE, "rus");
    int size, index=0, sum=0;
    cout<<"Введите размер массива: "; cin>>size;
 
    int *massive=new int [size];
    int *array=new int [255];
    for(int i=0; i<=size-1; i++){
        cout<<"Введите "<<i<<" элемент массива: "; 
        cin>>massive[i];
        }
 
    cout<<"Числа, повторяющееся ровно два раза: ";
 
    for (int k=0; k<=size-1; k++){ //запускаем цыкл на сравнение чисел в массиве
        int counter=0;
        for (int j=0; j<=size-1; j++) { 
            if(massive[j]==massive[k]){ 
                
                counter++;
                index=massive[j];//если (massive[j]==massive[k]) выполняется, то присваиваем index значение элемента массива
                }
            }
        
        if(counter==2){ //если число совпадений=2, то 
            array[sum]=index; //заносим значение index последовательно в массив array
            sum++;
 
    }
}
    for(int a=0; a<=sum-1; a++){ //запускаем пузырьковую сортировку из повторяющихся элементов массива
                for(int b=(sum-1);b>=a;b--){
                    if(array[b-1]>array[b]){
                        int t=array[b-1];
                        array[b-1]=array[b];
                        array[b]=t;
                    }
                }
            }
        for(int c=0; c<=sum-2; c++){ //сравниваем эелемент массива с последующем элементов (для того чтобы выводилась лишь одна цыфра)
                if(array[c]!=array[c+1]) cout<<array[c]<<", ";
        
      }
        cout<<(array[sum-1])<<".";
    delete [] massive;
    delete [] array;
    cout<<endl;
 
    system ("pause");
    return 0;
}
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
27.11.2013, 16:09     Вывести элементы массива, которые повторяются ровно два раза #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <vector>
#include <unordered_map>
 
int main()
{
    std::vector<int> v {9, 1, 9, 2, 3, 2, 0, 1, 3, 3, 7, 6, 7, 8, 0, 7, 1, 8 };
    std::unordered_map<int, int> map;
    for (int i : v) ++map[i];
    for (auto i : map) if (i.second == 2) std::cout << i.first << " ";
 
    std::cout << "\nDone." << std::endl;
    system("pause");
    return 0;
}
Alex566
 Аватар для Alex566
240 / 152 / 18
Регистрация: 03.04.2013
Сообщений: 317
28.11.2013, 04:00     Вывести элементы массива, которые повторяются ровно два раза #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
35
36
#include <iostream>
using namespace std;
int main()
{
    setlocale(0,"");
    int n,*m,s=0,t1=0,t2;
    cout<<"Введите количество элементов - ";
    cin>>n;
    m=(int*)malloc(sizeof(int)*n);//Выделение памяти под динамический массив
    for(int i=0;i<n;i++)
    {
        cout<<i+1<<"-й элемент - ";
        cin>>m[i];
    }
    cout<<"Вы ввели массив: ";
    for(int i=0;i<n;i++) cout<<m[i]<<" ";
    cout<<endl<<"Элементы, повторяющиеся 2 раза: ";
    //решение
    for(int i=0;i<n;i++,s=0)
    {
        for(int j=0;j<n;j++)
            if(m[i]==m[j])
                s++;
        if(s==2)
        {
            t2=t1;
            t1^=m[i];
            if(t2>t1)
                cout<<m[i]<<" ";
        }
    }
    //решение
    free (m);//Удаление памяти под динамический массив.
    system("pause>null");
    return 0;
}
Yandex
Объявления
28.11.2013, 04:00     Вывести элементы массива, которые повторяются ровно два раза
Ответ Создать тему
Опции темы

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