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

Найти в массиве и вывести значение наиболее часто встречающегося элемента. - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 73, средняя оценка - 4.88
Shyhrat
2 / 2 / 0
Регистрация: 04.04.2010
Сообщений: 18
27.05.2010, 08:42     Найти в массиве и вывести значение наиболее часто встречающегося элемента. #1
ПАцаны помогите, попадаю... отблагадарю...

1. Найти в массиве и вывести значение наиболее часто встре*
чающегося элемента.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2010, 08:42     Найти в массиве и вывести значение наиболее часто встречающегося элемента.
Посмотрите здесь:

C++ Найти значение наиболее часто встречающееся в целочисленном массиве размера N
Найти в массиве и вывести значение наиболее часто встречающегося элемента C++
C++ Дан непустой массив из цифр. Вывести на экран цифру наиболее часто встречающихся в этом массиве.
C++ Как вывести наиболее часто встречаемые элементы в массиве?
найти наиболее часто встречающийся элемент в массиве C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gh05t
47 / 46 / 4
Регистрация: 03.04.2010
Сообщений: 99
27.05.2010, 08:51     Найти в массиве и вывести значение наиболее часто встречающегося элемента. #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
#include <iostream>
 
using namespace std;
 
#define N 20
 
int main()
{
    int mass[N];
    for (int i = 0; i < N; i++)
    {
        mass[i] = rand()%100;
        cout << mass[i] << " ";
    }
 
    int maxcount(0), nn(0);
    for (int i = 0; i < N; i++)
    {
        int count(0);
        for (int j = i; j < N; j++)
            if (mass[i] == mass[j])
                count++;
 
        if (maxcount < count)
        {
            maxcount = count;
            nn = i;
        }
    }
 
    cout << endl << nn << endl;
    
    system("pause");
    return 0;
}
Shyhrat
2 / 2 / 0
Регистрация: 04.04.2010
Сообщений: 18
27.05.2010, 09:03  [ТС]     Найти в массиве и вывести значение наиболее часто встречающегося элемента. #3
а ты можешь рассписать эту задачу? ну там что какая фунция обозначает, помоги попадаю, через час надо защищиать эту задачу...
Inadequate
Retired
7703 / 2563 / 183
Регистрация: 17.10.2009
Сообщений: 5,106
27.05.2010, 09:04     Найти в массиве и вывести значение наиболее часто встречающегося элемента. #4
gh05t, если предположить, что в массиве выпали неповторяющиеся числа, то у тебя ответом будет первый элемент массива, хотя их на самом деле поровну. Надо бы добавить проверку.
gh05t
47 / 46 / 4
Регистрация: 03.04.2010
Сообщений: 99
27.05.2010, 10:51     Найти в массиве и вывести значение наиболее часто встречающегося элемента. #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
40
41
42
43
44
45
46
47
#include <iostream>
 
using namespace std;
 
#define N 5
 
int main()
{
    int mass[N];
    //заполняем массив случайными значениями от 0 до 99
    for (int i = 0; i < N; i++)
    {
        mass[i] = rand()%100;
        cout << mass[i] << " ";
    }
    
    int maxcount(1), nn(-1);
    //перебираем все элементы массива
    for (int i = 0; i < N; i++)
    {
        int count(0);
        //перебираем все элементы от i до конца
        for (int j = i; j < N; j++)
            //если элемент i совпадает с одним из последующих (j), то увеличиваем число
            if (mass[i] == mass[j])
                count++;
 
        //если число больше ранее сохраненного - перезаписываем
        if (maxcount < count)
        {
            maxcount = count;
            nn = i;
        }
    }
    
    //выводим
    if (nn > -1)
        //значение
        cout << endl << mass[nn] << endl;
    else
        //или то, что повторяющихся элементов нет
        cout << endl << "No repeating elements" << endl;
 
 
    system("pause");
    return 0;
}

Inadequate, спасибо, учел.
verena-12358
1 / 1 / 0
Регистрация: 12.10.2011
Сообщений: 165
14.03.2012, 10:42     Найти в массиве и вывести значение наиболее часто встречающегося элемента. #6
А если массив заполняется через random?
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
14.03.2012, 11:03     Найти в массиве и вывести значение наиболее часто встречающегося элемента. #7
Цитата Сообщение от verena-12358 Посмотреть сообщение
А если массив заполняется через random?
он и заполняется рандомно
verena-12358
1 / 1 / 0
Регистрация: 12.10.2011
Сообщений: 165
14.03.2012, 11:09     Найти в массиве и вывести значение наиболее часто встречающегося элемента. #8
Я имею ввиду, каким будет код? Он будет отличаться отэтого?
co6ak
Кошковед
 Аватар для co6ak
403 / 496 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
14.03.2012, 11:10     Найти в массиве и вывести значение наиболее часто встречающегося элемента. #9
C++
1
mass[i] = rand()%100;
это и есть рандом
не рандом - это когда каждое значение ручками или они уже забиты в коде
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.05.2012, 08:06     Найти в массиве и вывести значение наиболее часто встречающегося элемента.
Еще ссылки по теме:

Найти в массиве порядковый номер наиболее близкого элемента к заданному целому числу Х C++
Ввод из файла в массив и нахождение наиболее встречающегося элемента C++
Вывести 10 наиболее часто встречающихся чисел C++

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

Или воспользуйтесь поиском по форуму:
Shman
3 / 3 / 2
Регистрация: 30.04.2012
Сообщений: 212
28.05.2012, 08:06     Найти в массиве и вывести значение наиболее часто встречающегося элемента. #10
gh05t, интересная программа, а если выпадет две единицы и две двойки? Я специально уменьшил размер масссива до 5 элементов и ввел 1, 1, 2, 2, 3. вывелось 1. Как сделать так, чтобы выводились оба значения, т.е. 1 и 2 ?

Добавлено через 17 часов 12 минут
В общем мне дали подсказку, что это можно осуществить с помощью добавления списка, за что большое спасибо! После этого наиболее часто встречающиеся и равные цифры находятся нормально. Вот код:
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 <stdio.h> 
#include <conio.h> 
 
const int N = 10;
int main()
{     
 int mass[N]={3, 3, 2, 2, 1, 1, 7, 7, 9, 9}; // Обявляем массив.
 int list[N]; /* Обявляем массив, куда будут заносится равные, но наиб.  встречающиеся элементы.
                 Например, если задать массив из 5 элементов - 2, 2, 3, 3, 1, то вывести 2 и 3.
              */
 int i, j, count, maxcount, num, len; 
 printf("\n Massiv iz chisel ot 1 do 10: \n");
  for(i=0; i<N; i++)
  { printf("\n Massiv[%d] = %d. ", i, mass[i]); }
  
 len=0; maxcount=1; num=0; // Устанавливаем значения трех переменных по умолчанию.
   for (i=0; i<N; i++) // Перебираем все элементы массива.
    { count=0; // Счетчик в 0.      
       for (j=i; j<N; j++) // Перебираем все элементы от i до конца.
        if (mass[i] == mass[j]) // Если элемент [i] совпадает с одним из последующих [j],
           { count++; } // то увеличиваем значение счетчика.
        if (count==maxcount) // Если очередное число встречается maxcount раз, 
         { list[len]=i; // То занесём его в список.
            len++; } // Увеличиваем значение переменной.
        if (count > maxcount) // Если число больше максимального,
         { maxcount = count; // тогда оно максимальное.
           num = i;  //  Присаваеиваем элемент массива в новую переменную             
           len=1; // Разрушаем прежний список...
           list[0]=i; } // и формируем новый.
    }        
      printf("\n \n Povtor. chisla:");
     for(i=0; i<len; i++)  
      { printf(" %d.", mass[list[i]]); }  // Выводим значения часто повторяющийся элементов.
  
 getch(); 
 return 0;
}
Yandex
Объявления
28.05.2012, 08:06     Найти в массиве и вывести значение наиболее часто встречающегося элемента.
Ответ Создать тему
Опции темы

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