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

Посчитать сколько раз встречается каждый элемент в массиве. - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
NeRRouZ
 Аватар для NeRRouZ
4 / 4 / 0
Регистрация: 19.12.2010
Сообщений: 54
28.01.2012, 19:23     Посчитать сколько раз встречается каждый элемент в массиве. #1
Не получается программа.
Что не так?

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
56
57
58
59
60
61
62
63
64
65
66
#include <stdio.h>
using namespace std;
const int n = 7;
int main()
{
    int a[n];
    int a1[n];
    int b[n];
    int i, j;
    bool f = true;
    int buf;
    for (i = 0; i<n; i++)
        b[i] = 0;
        
        
    for (i = 0; i<n; i++)
        scanf("%d", &a[i]);
        
        
    for (i = 0; f ; i++)
    {
        f = false;
        for (j=0; j<n-i-1; j++)
            if (a[j] > a[j+1])
            {
                buf = a[j];
                a[j] = a[j+1];   // ñîðòèðóþ ГЇГ® âîçðГ*Г±ГІГ*Г*ГЁГѕ
                a[j+1] = buf;
                f = true;
            }
    }
    
    a1[0] = a[0];
    int n1 = 1;
    b[0] = 1;
    
    for (i=1; i<n; i++)
    {
        for(j=0; j<n1; j++)
        {   
            if (a1[j] == a[i])
            {
                b[j]++;
            }
            else
            {
                n1++;
                a1[n1] = a[j];
                b[n1]++;
            }
            
        }
        
        
    }
    for (i=0;i<n1;i++)
        printf("%d ", a1[i]);
    printf("----------------------------------\n");
    for (i=0; i<n1; i++)
        printf ("%d ", b[i]);
    
 
 
 
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.01.2012, 19:23     Посчитать сколько раз встречается каждый элемент в массиве.
Посмотрите здесь:

Вывести значения неповторяющихся элементов и сколько раз встречается каждый из них. C++
C++ Массив: Посчитать, сколько раз в массиве встречается цифра 5.
Массив: посчитать сколько раз в двумерном массиве встречается 0. C++
C++ Посчитать сколько раз встречается каждая буква(русский ввод)
Посчитать сколько раз встречается каждая буква в тексте C++
C++ Дан двумерный массив размером 13х12. Найти наибольший элемент массива и указать сколько раз он встречается в массиве
Найти наибольший элемент массива и указать сколько раз он встречается в массиве C++
C++ Подсчитать сколько раз встречается каждый байт файла

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
28.01.2012, 21:41     Посчитать сколько раз встречается каждый элемент в массиве. #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
#include <stdio.h>
 
int main ()
{
    int arr[] = {0, -4, 8, -4, 77, 0, -4}, tmp, i, j;
    size_t size = sizeof(arr) / sizeof(*arr), cntr;
    if(size)
    {
        for(i = 0; i < size; ++i) // сортировка по возрастанию
        {
            tmp = arr[i];
            for(j = i - 1; j >= 0 && arr[j] > tmp; --j)
            {
                arr[j + 1] = arr[j];
            }
            arr[j + 1] = tmp;
        }
        for(i = 0, j = 0, cntr = 0; j <= size; ++j, ++cntr) // подсчёт и печать
        {
            if(arr[i] != arr[j] || j == size)
            {
                printf("%d - %u times\n", arr[i], cntr);
                cntr = 0;
                i = j;
            }
        }
    }
    return 0;
}
qlipoth
23 / 23 / 1
Регистрация: 27.04.2013
Сообщений: 385
Записей в блоге: 3
01.10.2013, 00:14     Посчитать сколько раз встречается каждый элемент в массиве. #3
объясните пожалуйста вот этот кусок кода
C++
1
2
3
4
5
6
7
8
9
for(i = 0, j = 0, cntr = 0; j <= size; ++j, ++cntr) // подсчёт и печать
        {
            if(arr[i] != arr[j] || j == size)
            {
                printf("%d - %u times\n", arr[i], cntr);
                cntr = 0;
                i = j;
            }
        }
в первой строчке так вложенный цикл записан?
Yandex
Объявления
01.10.2013, 00:14     Посчитать сколько раз встречается каждый элемент в массиве.
Ответ Создать тему
Опции темы

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