Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/79: Рейтинг темы: голосов - 79, средняя оценка - 4.54
 Аватар для CFYZ
11 / 11 / 4
Регистрация: 21.11.2009
Сообщений: 187

Одномерный массив: сколько раз повторяется каждое число

08.09.2010, 18:15. Показов 14656. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
помогите решить такую задачку: есть одномерный массив, в котором n элементов, мы вводим в него числа и надо определить сколько раз повторяется каждое число и вывести на экран ответ в виде:
число = количество повторов.
Заранее благодарен)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.09.2010, 18:15
Ответы с готовыми решениями:

Массив: определить, сколько раз повторяется максимальное число в последоновательности
Нужно определить сколько раз повторяется максимальное число в последоновательности пример! Входные данные 7 1 4 2 5 2 5 3 ...

Найти и напечатать, сколько раз повторяется в тексте каждое слово
Найти и напечатать, сколько раз повторяется в тексте каждое слово Есть код на Java: public static void main(String args) { ...

Подчитать, сколько раз повторяется каждое слово во введенных данных
Требуется написать программу, которая должна вычислить, сколько раз каждое определенное слово повторяется во введенных данных. На с++

12
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
08.09.2010, 21:15
CFYZ, пользуй поиск
0
 Аватар для CFYZ
11 / 11 / 4
Регистрация: 21.11.2009
Сообщений: 187
08.09.2010, 21:25  [ТС]
Цитата Сообщение от Nameless One Посмотреть сообщение
CFYZ, пользуй поиск
Спасибо КЭП!!
Поис не дал результатов, если есть ссылки кидай!
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
09.09.2010, 00:28
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата Сообщение от CFYZ Посмотреть сообщение
Поис не дал результатов
Плохо искали, полно таких програмок на форуме...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <iomanip>
#include <map>
 
int main(){
    int size, val;
    std::map<int, int> map;
    
    std::cout << "Number of elements: ";
    std::cin >> size;
    for ( int i = 0; i < size; ++i ){
        std::cout << "ARRAY[" << i << "] = ";
        std::cin >> val;
        map[val]++;
    }
    std::cout << std::endl;
    std::cout << "Value    Count\n--------------" << std::endl;
    for ( std::map<int, int>::const_iterator it = map.begin(); it != map.end(); ++it )
        std::cout << std::setw(5) << it->first << std::setw(9) << it->second << std::endl;
    
    return 0;
}
1
 Аватар для CFYZ
11 / 11 / 4
Регистрация: 21.11.2009
Сообщений: 187
09.09.2010, 14:47  [ТС]
Мне не понятен этот код((

Вот что я написал:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <iomanip.h>
 
 
int n,x,j,i;
int a[i];
 
void main(){
clrscr();
cout<<"Vvedite kolichestvo cifer  "<<endl;
cin>>x;
cout<<"Vvedite kolichestvo igr  "<<endl;
cin>>j;
n=x*j;
cout<<"Vvedite nomera  "<<endl;
for (i=0; i<n; i++)
cin>>a[i];}
Можите его продолжить?? тут вводитмся массив, а мне нужна часть где определяется сколько раз повторяется КАЖДАЯ цифра, и вывод цифры и количества повторений, и сортировка по убыванию относительно повторений.

Заранее благодарен.
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
09.09.2010, 15:07
Цитата Сообщение от CFYZ Посмотреть сообщение
мне нужна часть где определяется сколько раз повторяется КАЖДАЯ цифра, и вывод цифры и количества повторений
Точно цифры с числами не путаете? На всякий случай напишите, какие данные на входе и на выходе...

Цитата Сообщение от CFYZ Посмотреть сообщение
"Vvedite kolichestvo igr "
Количество чего?
1
 Аватар для CFYZ
11 / 11 / 4
Регистрация: 21.11.2009
Сообщений: 187
09.09.2010, 15:39  [ТС]
Ввод:
Числа

Вывод:
Число (которое ввели) = Сколько раз оно повторилось в массиве
Число (которое ввели) = Сколько раз оно повторилось в массиве
Число (которое ввели) = Сколько раз оно повторилось в массиве
.............. и т.д.

А та надпись не важна, она нужна для расчета количества элементов массива.
0
84 / 57 / 8
Регистрация: 07.08.2010
Сообщений: 185
10.09.2010, 07:18
Цитата Сообщение от CFYZ Посмотреть сообщение
мне нужна часть где определяется сколько раз повторяется КАЖДАЯ цифра, и вывод цифры и количества повторений, и сортировка по убыванию относительно повторений.
Опиши сначала на русском языке алгоритм того, как ты собираешься искать повторы.
1
 Аватар для CFYZ
11 / 11 / 4
Регистрация: 21.11.2009
Сообщений: 187
10.09.2010, 09:45  [ТС]
Цитата Сообщение от alexzak Посмотреть сообщение
Опиши сначала на русском языке алгоритм того, как ты собираешься искать повторы.
Возможно так:

Запоминать значение первого эл-та, и сравнивать его со всеми остальными, если найдется такой же элемент, то к счетчику прибавится 1, после того как первый эл-т сравнится со всеми остальными, надо
вывести его значение и количество повторений.

Потом повторить тоже самое со вторым элементом и т.д.
0
84 / 57 / 8
Регистрация: 07.08.2010
Сообщений: 185
10.09.2010, 09:56
Цитата Сообщение от CFYZ Посмотреть сообщение
Возможно так:

Запоминать значение первого эл-та, и сравнивать его со всеми остальными, если найдется такой же элемент, то к счетчику прибавится 1, после того как первый эл-т сравнится со всеми остальными, надо
вывести его значение и количество повторений.

Потом повторить тоже самое со вторым элементом и т.д.
Теперь перевод на С++ тривиален:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const int size = ...;  // размер массива
int a[size];
// .. инициализация массива
 
for (int i = 0; i < size; ++i)  // элемент, для которого ищутся повторы
{
    int count = 0;  // количество повторов
 
    for (int j = 0; j < size; ++j)  // сравниваем со всеми остальными
    {
        if (a[i] == a[j])  ++count;  // увеличиваем счетчик
    }
 
    cout << "элемент a[" << i << "]=" << a[i] << ", повторов=" << count << endl;
}
1
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
10.09.2010, 10:33
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата Сообщение от CFYZ Посмотреть сообщение
Число (которое ввели) = Сколько раз оно повторилось в массиве
Ну так у меня то же самое, только выводится красивше...

Цитата Сообщение от CFYZ Посмотреть сообщение
Вот что я написал:
Я так не умею... У меня на С вот, что получилось:
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
55
#include <stdio.h>
#include <stdlib.h>
 
typedef struct COUNT {
    int val;
    int cnt;
} count_t;
 
int cmp_by_count_desc(const void * a, const void * b){
    return (*(count_t*)b).cnt - (*(count_t*)a).cnt;
}
 
#define BUF_LEN 32
 
int main(void){
    count_t * pArr;
    int nCounters, nVal, nPos;
    char buf[BUF_LEN];
    
    pArr = NULL;
    nCounters = 0;
    
    printf("Enter some numbers one by row (empty row - finish):\n");
    while ( fgets(buf, BUF_LEN, stdin) ){
        if ( *buf == '\n' )
            break;
        nVal = atoi(buf);
        for ( nPos = 0; nPos < nCounters; ++nPos ){
            if ( pArr[nPos].val == nVal ){
                pArr[nPos].cnt += 1;
                break;
            }
        }
        if ( nPos == nCounters ){
            if ( ( pArr = (count_t*)realloc(pArr, sizeof(count_t) * (nCounters + 1)) ) == NULL ){
                perror("realloc");
                exit(1);
            }
            pArr[nCounters].val = nVal;
            pArr[nCounters].cnt = 1;
            nCounters += 1;
        }
    }
    if ( ! pArr || ! nCounters ){
        fprintf(stderr, "No one counter created!\n");
        exit(1);
    }
    qsort(pArr, nCounters, sizeof(count_t), cmp_by_count_desc);
    printf("     Value     Count\n--------------------\n");
    for ( nPos = 0; nPos < nCounters; ++nPos )
        printf("     %5d     %5d\n", pArr[nPos].val, pArr[nPos].cnt);
    
    free(pArr);
    exit(0);
}
Цитата Сообщение от CFYZ Посмотреть сообщение
Запоминать значение первого эл-та, и сравнивать его со всеми остальными
С какими остальными, если он первый?! О_о

Добавлено через 13 минут
Цитата Сообщение от easybudda Посмотреть сообщение
С какими остальными, если он первый?!
Гы. Дошло. Ну да, можно и так... Только, так сортировать не получится...
1
84 / 57 / 8
Регистрация: 07.08.2010
Сообщений: 185
10.09.2010, 10:42
Заметь, CFYK, что я ничего не добавил и не убавил от твоего описания. Алгоритм полностью твой. Это описание является одной из важнейших стадий работы над программой. Пока ты не сможешь сказать, что ты хочешь сделать на своем родном языке, ты не сможешь сказать это и на языке программирования.

С сортировкой по убыванию тоже самое. Опиши, как ты это будешь делать. Шаг за шагом. Потом найди, как эти шаги будут записываться на С++.
1
 Аватар для CFYZ
11 / 11 / 4
Регистрация: 21.11.2009
Сообщений: 187
10.09.2010, 15:21  [ТС]
Спасибо, alexzak, это я понял, но честно говоря я не могу пока представить алгоритм сортировки((
разве что запоминать значение каждого счетчика, а потом сравнивать эти значения?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.09.2010, 15:21
Помогаю со студенческими работами здесь

Определить, сколько раз в заданном массиве слов повторяется каждое слово
Задан массив слов. Определить, сколько раз в нём повторяется каждое слово.

Ведите число нужно определить сколько раз повторяется цифра и является ли это число палиндромом
Help. Нужно ввести число нужно определить сколько раз повторяется цифра и является ли это число палиндромом

Определить, сколько раз число, введенное пользователем, повторяется в массиве
Как используя массивы создать программу, которая покажет сколько раз число, введенное пользователем повторяется в массиве? Например, есть...

Определить, сколько раз каждое число используется в массиве
Вот код: #include &lt;iostream&gt; using namespace std; int main() { //двухмерный массив int numbers = {{1, 2, 7} , {2, 5, 3},...

Подсчитать,сколько раз каждое число встречается в файле
Помогите ,кому нетрудно с лабораторной работой. Задание: подсчитать,сколько раз каждое число встречается в тексте файла number1.txt. Все...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru