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

Узнать, какие элементы в массиве встречаются больше одного раза. - C++

Восстановить пароль Регистрация
 
BOT
44 / 0 / 0
Регистрация: 26.10.2011
Сообщений: 115
11.03.2012, 18:14     Узнать, какие элементы в массиве встречаются больше одного раза. #1
Задается массив. Узнать, какие элементы в массиве встречаются больше одного раза.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2012, 18:14     Узнать, какие элементы в массиве встречаются больше одного раза.
Посмотрите здесь:

Подсчитать, сколько элементов встречаются в массиве более одного раза. C++
Все элементы вектора, которые встречаются более одного раза, переписать в другой вектор C++
C++ Одномерный массив А суммируется из 30 элементов. Найти и напечатать числа, которые встречаются в массиве более одного раза
Многомерные массивы. Найти и напечатать числа, которые встречаются в массиве более одного раза C++
Найти и напечатать числа, которые встречаются в массиве более одного раза C++
Разработать функцию, определяющую максимальное число, встречающееся в массиве больше одного раза C++
Изменить матрицу так, чтобы в строках остались элементы, которые встречаются более одного раза, а другие заменить нулями C++
C++ В заданном целочисленном массиве изъять элементы, которые встречаются больше заданного числа

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
11.03.2012, 18:21     Узнать, какие элементы в массиве встречаются больше одного раза. #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <algorithm>
#include <iostream>
#include <map>
 
int main()
{
   int arr[] = {1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 0};
   std::map<int, int> m;
   for(size_t i = 0; i < sizeof(arr) / sizeof(arr)[0]; i++)
   {
      m[arr[i]] = std::count(arr, arr + sizeof(arr) / sizeof(arr)[0], arr[i]);
   }
   for(std::map<int, int>::const_iterator it = m.begin(); it != m.end(); ++it)
   {
      if(it->second > 1)
         std::cout << it->first << " : " <<it->second << std::endl;
   }
   system("pause");
}
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9372 / 5422 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
26.04.2012, 19:04     Узнать, какие элементы в массиве встречаются больше одного раза. #3
 Комментарий модератора 
Пост перемещен из дубля темы в разделе C для начинающих

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 <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int * find_it(const int value, const int * arr, const size_t size) {
    return ( ! size ) ? NULL : ( value == *arr ) ? (int*) arr : find_it(value, arr + 1, size - 1);
}
 
void rnd_fill(int * arr, size_t size) {
    while ( size-- )
        *arr++ = rand() % 10;
}
 
void dump(const int * arr, size_t size) {
    while ( size-- )
        printf("%d%c", *arr++, ( size ) ? ' ' : '\n');
}
 
#define SIZE 10
 
int main(void) {
    int arr[SIZE], i;
    
    srand(time(NULL));
    rnd_fill(arr, SIZE);
    printf("Array:\n");
    dump(arr, SIZE);
    printf("Doubling values:\n");
    for ( i = 0; i < SIZE - 1; ++i )
        if ( find_it(arr[i], arr + i + 1, SIZE - i - 1) && ! find_it(arr[i], arr, i) )
            printf("%d\n", arr[i]);
    
    return 0;
}
Yandex
Объявления
26.04.2012, 19:04     Узнать, какие элементы в массиве встречаются больше одного раза.
Ответ Создать тему
Опции темы

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