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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.91
egorikem
7 / 7 / 1
Регистрация: 05.10.2010
Сообщений: 137
#1

Найти количество повторов в массиве - C++

18.10.2010, 17:22. Просмотров 3055. Ответов 10
Метки нет (Все метки)

Как найти количиство повторов в массиве длиной вводимой с клавы? О_о
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.10.2010, 17:22     Найти количество повторов в массиве
Посмотрите здесь:
C++ Замена повторов в массиве
C++ Найти в массиве максимальный и минимальный элементы в массиве и их количество
Количество повторов строк в последовательности C++
В массиве Z (m) найти количество дежурств знака, то есть количество переходов с минуса на плюс и наоборот. Например, в последовательности 0, - 2, 0 - C++
C++ Количество повторов последнего элемента массива
C++ Количество повторов каждого из элементов матрицы
C++ Программа подсчитывающая количество повторов цифр в числе.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
18.10.2010, 17:25     Найти количество повторов в массиве #2
Если удручает размер массива, вводимый с клавиатуры, то динамическое распределение памяти вам в помосчь.
Mr.X
Эксперт С++
3048 / 1693 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
18.10.2010, 17:52     Найти количество повторов в массиве #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
//////////////////////////////////////////////////////////////////////////////////
//  Как найти количиство повторов в массиве длиной вводимой с клавы?
//////////////////////////////////////////////////////////////////////////////////
#include <iostream>
#include <set>
#include <vector>
//////////////////////////////////////////////////////////////////////////////////
typedef std::vector<int>    T_nums;
typedef std::set<int>       T_num_set;
//////////////////////////////////////////////////////////////////////////////////
int  get_identical_numbers_quantity(const T_nums&  nums)
{
    T_num_set  num_set(nums.begin(), nums.end());
    return  nums.size() - num_set.size();
}
//////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale(""));   
    std::cout << "Введите длину последовательности: ";
    int n;
    std::cin >> n;
    T_nums  nums(n);
    std::cout << "Введите "
              << n 
              << " целых чисел: "
              << std::endl;
    for(int i = 0; i < n; ++i)
    {
        std::cout << "-> ";
        std::cin >> nums[i];
    }
    std::cout << "В этой последовательности "
              << get_identical_numbers_quantity(nums)
              << " чисел, повторяющих уже существующие."
              << std::endl;
}
egorikem
7 / 7 / 1
Регистрация: 05.10.2010
Сообщений: 137
18.10.2010, 21:37  [ТС]     Найти количество повторов в массиве #4
Спасибо! А можно попроще а то мы учим С++ месяц и меня за это... =)

Добавлено через 3 минуты
И можно типа ответ: повторяется (к примеру [5]) столько то раз =)
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
18.10.2010, 22:13     Найти количество повторов в массиве #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
37
38
39
#include <iostream>
#include <ctime>
 
using std::cin;
using std::cout;
using std::endl;
 
int main()
{
    setlocale(LC_ALL,"Russian");
    srand((unsigned)time(NULL));
    int *arr;
    int size,count=0;
    cout<<"Введите длину массива: ";
    cin>>size;
    arr = new int[size];
    cout<<"Массив: ";
     for(int i=0; i<size; i++)
       {
           arr[i]=rand()%9;
           cout<<arr[i]<<"  ";
       }
     for(int i=0; i<size; i++)
       {
         for(int j=0; j<size; j++)
          {
            if(arr[i]==arr[j])
              {
                 count++;
              }
          }
         cout<<endl;
         cout<<"arr["<<i<<"]= "<<count;
         count=0;
       }
  system("pause");
  delete [] arr;
  return 0;
}
Mr.X
Эксперт С++
3048 / 1693 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
18.10.2010, 22:40     Найти количество повторов в массиве #6
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
//////////////////////////////////////////////////////////////////////////////////
//  Как найти количиство повторов в массиве длиной вводимой с клавы?
//////////////////////////////////////////////////////////////////////////////////
#include <iostream>
#include <vector>
#include <map>
//////////////////////////////////////////////////////////////////////////////////
typedef std::vector<int>    T_nums;
typedef std::map<int, int>  T_numbers_quantity;
//////////////////////////////////////////////////////////////////////////////////
void  print_identical_numbers_quantity(const T_nums&  nums)
{
    T_numbers_quantity  numbers_quantity;
    for(T_nums::const_iterator  num_it = nums.begin(); num_it != nums.end(); ++num_it)
    {
        ++numbers_quantity[*num_it];    
    }
 
    for(T_numbers_quantity::const_iterator  NQ_it = numbers_quantity.begin();
        NQ_it != numbers_quantity.end(); ++NQ_it)
    {
        std::cout << "Число "
                  << NQ_it->first
                  << " повторяется в массиве "
                  << NQ_it->second
                  << " раз."
                  << std::endl;
    }
}
//////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale(""));   
    std::cout << "Введите длину последовательности: ";
    int n;
    std::cin >> n;
    T_nums  nums(n);
    std::cout << "Введите "
              << n 
              << " целых чисел: "
              << std::endl;
    for(int i = 0; i < n; ++i)
    {
        std::cout << "-> ";
        std::cin >> nums[i];
    }
    print_identical_numbers_quantity(nums);
    std::cout << std::endl;
}
egorikem
7 / 7 / 1
Регистрация: 05.10.2010
Сообщений: 137
19.10.2010, 19:15  [ТС]     Найти количество повторов в массиве #7
Цитата Сообщение от MILAN Посмотреть сообщение
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
#include <iostream>
#include <ctime>
 
using std::cin;
using std::cout;
using std::endl;
 
int main()
{
    setlocale(LC_ALL,"Russian");
    srand((unsigned)time(NULL));
    int *arr;
    int size,count=0;
    cout<<"Введите длину массива: ";
    cin>>size;
    arr = new int[size];
    cout<<"Массив: ";
     for(int i=0; i<size; i++)
       {
           arr[i]=rand()%9;
           cout<<arr[i]<<"  ";
       }
     for(int i=0; i<size; i++)
       {
         for(int j=0; j<size; j++)
          {
            if(arr[i]==arr[j])
              {
                 count++;
              }
          }
         cout<<endl;
         cout<<"arr["<<i<<"]= "<<count;
         count=0;
       }
  system("pause");
  delete [] arr;
  return 0;
}
А можно чтоб вводил элементы массива сам человек!!!!
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
19.10.2010, 19:30     Найти количество повторов в массиве #8
Да, конечно:

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
#include <iostream>
#include <ctime>
 
using std::cin;
using std::cout;
using std::endl;
 
int main()
{
        setlocale(LC_ALL,"Russian");
        srand((unsigned)time(NULL));
        int *arr;
        int size,count=0;
        cout<<"Введите длину массива: ";
        cin>>size;
        arr = new int[size];
          for(int i=0; i<size; i++)
           {
                   cout<<"Введите елемент: "<<i<<" ";
                   cin>>arr[i];
                   cout<<endl;
            }
          cout<<"Массив: ";
             for(int i=0; i<size; i++)
                {
                   cout<<arr[i]<<"  ";
               }
         
         for(int i=0; i<size; i++)
           {
         for(int j=0; j<size; j++)
                  {
            if(arr[i]==arr[j])
                          {
                 count++;
                          }
                  }
                 cout<<endl;
                 cout<<"arr["<<i<<"]= "<<count;
                 count=0;
           }
  system("pause");
  delete [] arr;
  return 0;
}
egorikem
7 / 7 / 1
Регистрация: 05.10.2010
Сообщений: 137
23.10.2010, 12:30  [ТС]     Найти количество повторов в массиве #9
MILAN, А можно чтоб в конце выводилась одна строка и только с повтором а не все элементы???
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
23.10.2010, 12:40     Найти количество повторов в массиве #10
Так пойдет?

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
#include <iostream>
#include <ctime>
 
using std::cin;
using std::cout;
using std::endl;
 
int main()
{
        setlocale(LC_ALL,"Russian");
        srand((unsigned)time(NULL));
        int *arr;
        int size,count=0;
        cout<<"Введите длину массива: ";
        cin>>size;
        arr = new int[size];
          for(int i=0; i<size; i++)
           {
                   cout<<"Введите елемент: "<<i<<" ";
                   cin>>arr[i];
                   cout<<endl;
            }
         for(int i=0; i<size; i++)
           {
             count=0;
             for(int j=0; j<size; j++)
              {
                if(arr[i]==arr[j])
                  {
                    count++;
                  }
              }
           if(count>1)
                 {
                    cout<<"arr["<<i<<"]= "<<count<<endl;
                  }
           }
  system("pause");
  delete [] arr;
  return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.10.2010, 13:36     Найти количество повторов в массиве
Еще ссылки по теме:
C++ Напечатать в столбик отдельные слова, и указать для каждого количество повторов в строке
Найти количество дубликатов в массиве C++
C++ Найти количество нечётных цифр в массиве
Найти количество простых чисел в массиве C++
C++ Найти количество не повторяющихся элементов в массиве

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

Или воспользуйтесь поиском по форуму:
egorikem
7 / 7 / 1
Регистрация: 05.10.2010
Сообщений: 137
23.10.2010, 13:36  [ТС]     Найти количество повторов в массиве #11
Слых у тебя так сказать ошибка! Надо его сначала отсортировать!!!!
Yandex
Объявления
23.10.2010, 13:36     Найти количество повторов в массиве
Ответ Создать тему
Опции темы

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