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

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

Войти
Регистрация
Восстановить пароль
 
Marshal_Женя
0 / 0 / 0
Регистрация: 10.01.2011
Сообщений: 14
#1

Одноразовый вывод повторяющихся значений - C++

16.01.2011, 13:39. Просмотров 441. Ответов 3
Метки нет (Все метки)

Задача:
Написать шаблонную функцию, котороая будет принимать массивы любого типа
C++
1
2
3
4
const int size=10;
    int mas[size]={ 1, 2, 3, 4, 1, 2, 3, 4, 5, 6};
    char mas[size]={'!', '@', '!', '$', '%', '^', '$', '^', '^', ')'}; 
    double mas[size]={1.1, 2.2, 1.1, 3.3, 4.4, 5.5, 5.5, 3.3, 2.2, 9.9};
и выводила повторяющиеся значения(значение должно выводиться один раз)
например:

1, 2, 3, 4, 1, 2, 3, 4, 5, 6
а вывести на экран
1,2,3,4


Заранее спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2011, 13:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Одноразовый вывод повторяющихся значений (C++):

Поиск повторяющихся значений массива - C++
Задача: Написать программу для поиска повторяющихся значений. Повторяющимся считается значение, которое встречается 2 или больше раз. ...

Удаление повторяющихся значений в списке - C++
Добрый день. Нужна помощь в написании функции удаления повторяющихся элементов в списке. struct Adr { char name; char street; ...

Сравнение двух массивов и выборка из них не повторяющихся значений - C++
Задание 2 на скриншоте. Я сделал ввод с клавиатуры двух массивов нужно как то остальное сделать #include <iostream> #include <cmath> ...

Вывод не повторяющихся букв в 2 словах - C++
Ввести 2 слова. Написать программу, выводящую только те буквы слов, которые встречаются в обоих словах только по 1 разу. Написал...

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

Вывод повторяющихся чисел массива и количество повторений - C++
Добрый день. Придумал задачу, а реализовать до конца не получается. Суть вот в чём. Массив наполняется случайными числами. Программа...

3
asics
Freelance
Эксперт С++
2850 / 1785 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
16.01.2011, 14:12 #2
Marshal_Женя,
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
#include <iostream>
#include <algorithm>
#include <vector>
#include <iterator>
 
template <class T, int size>
void templ_func(const T (&arr)[size])
{
   bool key, _key;
   std::vector<T> vec;
 
   for(int i = 0; i < size; ++i)
   {
       key = true;
       for(int j = 0; j < size; ++j)
           if(i != j && arr[i] == arr[j])
               key = false;
 
        if(!key)
        {
            if(!vec.empty())
            {
                for(int k = 0; k < vec.size(); ++k)
                    if(vec[k] == arr[i])
                        key = true;
 
                if(!key)
                    vec.push_back(arr[i]);
            }
 
            else
                vec.push_back(arr[i]);
        }
   }
 
   std::copy(vec.begin(), vec.end(), std::ostream_iterator<T>(std::cout, " "));
}
 
int main()
{
    int mas[]={ 1, 2, 3, 4, 1, 2, 3, 4, 5, 6};
    templ_func(mas);
    return 0;
}
0
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
16.01.2011, 14:21 #3
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
#include <iostream>
 
template< typename T >
void repeat_search(T *arr, size_t size)
{
    T *res = new T [size / 2 + 1];
    size_t len = 0;
    
    for (size_t i = 0; i < size; ++i)
    {
        for (size_t j = i + 1; j < size; ++j)
        {
            if (arr[i] == arr[j])
            {
                bool key = false;
 
                for (size_t k = 0; k < len; ++k)
                {
                    if (res[k] == arr[i])
                    {
                        key = true;
 
                        break;
                    }
                }
 
                if (!key)
                    res[len++] = arr[i];
            }
        }
    }
 
    for (size_t i = 0; i < len; ++i)
        std::cout << res[i] << "  ";
 
    std::cout << std::endl;
 
    delete [] res;
}
 
int main()
{
    const int size = 10;
 
    int imas[size] = {1, 2, 3, 4, 1, 2, 3, 4, 5, 6};
    char cmas[size] = {'!', '@', '!', '$', '%', '^', '$', '^', '^', ')'}; 
    double dmas[size] = {1.1, 2.2, 1.1, 3.3, 4.4, 5.5, 5.5, 3.3, 2.2, 9.9};
 
    repeat_search(imas, size);
    repeat_search(cmas, size);
    repeat_search(dmas, size);
 
    return 0;
}
Добавлено через 4 минуты
asics, а если я вашей функции на вход динамический массив подам?
0
asics
Freelance
Эксперт С++
2850 / 1785 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
16.01.2011, 19:59 #4
silent_1991, Код был написан по трех тестах в первом посте темы и я там не наблюдаю дин. масивы.
0
16.01.2011, 19:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.01.2011, 19:59
Привет! Вот еще темы с ответами:

Работа со строками. Нахождение повторяющихся символов и вывод на экран - C++
Всем ещё раз доброго времени суток. На форуме уже находил статьи с аналогом моей программы, но нигде не встретил нужного решения. ...

Вычислить значение заданной функци на данном интервале с заданным шагом. Осуществить вывод значений аргумента и результатов вычислений значений функ - C++
Вычислить значение заданной функции y=f(x) на данном интервале с заданным шагом. Осуществить вывод значений аргумента и результатов...

Вывод значений на экран - C++
Имеется след код: #include &lt;conio.h&gt; using namespace std; int main() { struct Phone { int n_station; int...

Некорректный вывод значений - C++
Подскажите пожалуйста. в label_66 выводится &quot;0000&quot; а в label_65 не выводится &quot;15руб&quot; ошибок нет. куда еще нужно прописать label_65...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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