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

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

Войти
Регистрация
Восстановить пароль
 
disker
2 / 2 / 0
Регистрация: 25.01.2012
Сообщений: 88
#1

Подсчёт количества выпадений чисел в массиве. - C++

28.01.2012, 20:19. Просмотров 727. Ответов 8
Метки нет (Все метки)

Имеется одноразрядный массив а[n] с набором чисел в нем [1..50]. Порядок чисел в массиве рандомный. То есть приблизительно может быть вот так:

19 4 45 32 48 и т.д.
Как посчитать сколько раз каждое число [1..50] повторяется в массиве.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.01.2012, 20:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Подсчёт количества выпадений чисел в массиве. (C++):

Подсчёт количества чисел в строке - C++
Подсчитать количество чисел в первой строке из текстового файла: код написала, всё хорошо считывается из текстового файла и выводится на...

подсчёт количества членов в наиболее длинной подпоследовательности из одинаковых чисел - C++
Для последовательности чисел подсчитать количество членов в наиболее длинной подпоследовательности из одинаковых чисел. Окончание ввода –...

Подсчёт уникальных чисел в массиве - C++
привет не мог бы ты мне не много помочь, вообщем мне нужно подсчитать кол-во уникальных чисел в массиве от -100 до 100, при вводе...

Составить функцию для подсчета количества различных чисел в массиве - C++
Составить функцию для подсчета количества различных чисел в массиве, содержащем n целых чисел: int count(int *a, int n) нашёл...

Подсчёт количества символов - C++
Здравствуйте, возник вопрос: Почему в функцию не передаётся вся строка, например я пишу "qwerty qwerty" то он не передаёт второй "qwerty"...

Подсчёт количества подстрок - C++
Посмотрите пожалуйста нормально ли написана функция, которая считает количество подстрок? int SearchSubString(char *s1,char *s2){ ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Vandris
63 / 63 / 13
Регистрация: 19.01.2011
Сообщений: 94
28.01.2012, 20:51 #2
если гарантируется что массив не содержит чисел, кроме [1...50] то можно так:
C++
1
2
3
int counts[51] = {0};
for (int i = 0; i < n; i++)
    counts[a[i]]++;              //тогда в counts будет на i-м месте будет число выпадений i в массиве a
приведу пример с числами поменьше для наглядности
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
#include <iostream>
#include <cstdlib>
#include <ctime>
 
#define N 50
 
int main()
{
    srand(static_cast<unsigned>(time(NULL)));
 
    int a[N], counts[11] = {0};
 
    for (int i = 0; i < N; std::cout << (a[i++] = rand()%10 + 1) << " ");
 
    for (int i = 0; i < N; i++)
        counts[a[i]]++;
 
    std::cout << "\n\n";
 
    for (int i = 0; i < 11; i++)
        std::cout << i << " - " << counts[i] << "\n";
 
    return 0;
}
Pavel.fromBy
13 / 13 / 1
Регистрация: 31.12.2011
Сообщений: 83
28.01.2012, 20:54 #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
#include <iostream>
#include <time.h>
 
using namespace std;
 
int main()
{
    srand(0);
 
        int arr[10];
    int num[51] = {0};
 
    for (int i = 0; i < 10; i++)
        arr[i] = rand() % 50 + 1;
 
    for (int i = 0; i < 10; i++)
        num[arr[i]]++;
 
    for (int i = 1; i < 51; i++)
        if (num[i] != 0)
            cout << "Число " << i << " повторилось " << num[i] << " раз!";
 
    return 0;
}
p.s. Пардон, опоздал И вывод после иниц. массива забыл
disker
2 / 2 / 0
Регистрация: 25.01.2012
Сообщений: 88
28.01.2012, 21:06  [ТС] #4
Цитата Сообщение от Vandris Посмотреть сообщение
если гарантируется
да, гарантируется. То есть Вы хотите сказать, что мне достаточно этих 3-х строк чтобы вычислить сколько раз встречается каждое число в массиве :
C++
1
2
3
int counts[51] = {0};
for (int i = 0; i < n; i++)
    counts[a[i]]++;
?

и если мне нужно узнать к примеру сколько раз встречалось число 1 в массиве (просто пример), то мне нужно будет вывести на екран : counts[1] ?
Vandris
63 / 63 / 13
Регистрация: 19.01.2011
Сообщений: 94
28.01.2012, 21:11 #5
Цитата Сообщение от disker Посмотреть сообщение
и если мне нужно узнать к примеру сколько раз встречалось число 1 в массиве (просто пример), то мне нужно будет вывести на екран : counts[1] ?
именно так
disker
2 / 2 / 0
Регистрация: 25.01.2012
Сообщений: 88
28.01.2012, 21:36  [ТС] #6
Отблагодарил обоих мастеров Спасибо

Добавлено через 20 минут
Ещё такой вопрос будет, немного не по теме: а как мне сейчас эти все числа и количество сколько раз они повторялись вывести програмно в сетку DataGridView на форму в два ряда, используя Microsoft Visual Studio 2010 так, чтобы числа [1..50] находились в верхней строке, а количество сколько раз они выпадали под ними в нижней строке?
Pavel.fromBy
28.01.2012, 21:54
  #7

Не по теме:

И srand(time(0)) нужно было написать... Поторопился, однако

disker
2 / 2 / 0
Регистрация: 25.01.2012
Сообщений: 88
28.01.2012, 21:58  [ТС] #8
Цитата Сообщение от Pavel.fromBy Посмотреть сообщение
И srand(time(0)) нужно было написать... Поторопился, однако
а куда его нужно написать ? я просто проверил и у меня правильно считает вариант от Vandris, поэтому и ответил так

P.s. а сетку не надо програмно, я уже решил что так вынесу изначально, вот только пока разбираюсь как значения в ячейки сетки прикрутить Первую строку я так понимаю можно задать при построении таблицы, так как значения будут всегда одни и те же, а вот как посчитанные в сетку во вторую строку добавить пока не знаю
Dekio
Фрилансер
Эксперт С++
5837 / 1218 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
28.01.2012, 22:15 #9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <map>
 
const int n = 10;
 
int main()
{
    int arr[n];
    std::map<int, int> maper;
    for(auto i = 0; i < n; std::cin>>arr[i], ++maper[arr[i++]]);
    for(auto &i: maper)
        std::cout<<"Num = "<<i.first<<" Count = "<<i.second<<std::endl;
    system("pause");
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.01.2012, 22:15
Привет! Вот еще темы с ответами:

В массиве X найти сумму наибольшего количества чисел, произведение которых меньше M - C++
ребята помогите с задачей В массиве X целых чисел найти сумму наибольшего количества чисел, произведение которых меньше M (ввести с...

Подсчёт количества символов и замена - C++
Подсчитать количество символов + стоящих между А и Б, заменить каждый символ 0 на ОО. Код написала, но в чём ошибка не понимаю:( компилятор...

Подсчёт количества слов в тексте - C++
Помогите пожалуйста с кодом. Для данного задания: Дан текст произвольной длины, оканчивающийся точкой. Текст состоит из слов,...

Подсчёт количества слов в предложении - C++
Помогите пожалуйста, нужно написать программу ,которая посчитает сколько слов в предложении


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
28.01.2012, 22:15
Ответ Создать тему
Опции темы

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