0 / 0 / 0
Регистрация: 09.01.2017
Сообщений: 42
1

Вывод гистограмм частот

16.04.2017, 17:09. Показов 1198. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
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 <stdio.h>
    main()
    {
        int i, j, c, MaxLenght, MaxValue;
        int LettersFreq[128];   // Для простоты ограничимся латинскими символами
 
        MaxLenght = MaxValue = 0;
        for (i = 0; i < 128; ++i)
            LettersFreq[i] = 0;
 
        //Заполнение массива
        while ((c = getchar()) != EOF) {
            ++LettersFreq[c];
        }
 
        //Вычисление границ гистограммы
        for (i = 0; i < 128; ++i) {
            if (MaxValue < LettersFreq[i])
                MaxValue = LettersFreq[i];
            if (LettersFreq[i] != 0)
                ++MaxLenght;
        }
 
        //Вывод результата
        printf("\n");
        for (i = MaxValue; i > -1; --i) {
            if (i > 0)
                printf("%2d ", i);
            else if (i == 0)
                printf("   ");
            for (j = 31; j < 128; j++) {    //Отбросим непечатные символы
                if (i > LettersFreq[j] && LettersFreq[j] != 0)
                    putchar(' '), putchar(' '), putchar(' ');
                else if (i == 0 && LettersFreq[j] != 0)
                if (j == ' ')
                    printf("' '");
                else
                    printf("%2c ", j);
                else if (LettersFreq[j] != 0)
                    putchar(177), putchar(177), putchar(177);
            }
            printf("\n");
        }
        system("pause");
    }
Объясните пожалуйста каким образом заполняется массив
C
1
2
3
while ((c = getchar()) != EOF) {
            ++LettersFreq[c];
        }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.04.2017, 17:09
Ответы с готовыми решениями:

Вывод на каналы Realtek частот различных диапазонов
Всем привет! У меня стоит звуковая карта Realtek с 6 выходами Ну я хочу сделать чтобы на каждый...

Построить гистограммы частот и относительных частот
Построить гистограммы частот и относительных частот распределения(в первом столбце указан частичный...

Построение гистограмм и диаграмм
Помогите написать программку на эту тему!!

Помощь в построении гистограмм
Добрый день. Никак не могу разобраться в Excel'е, столкнулся впервые. Большая просьба помочь...

3
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
16.04.2017, 17:16 2
marikhuan, Что именно непонятно?
Подробнее можно записать так
C
1
2
3
while ((c = getchar()) != EOF) {
            LettersFreq[c] = LettersFreq[c] + 1;
        }
Я бы всетки проверял c на допустимость диапазона 0<=c <=127. Массивы, знаете ли... Индексы... Недолго и в чужую память залезть
0
0 / 0 / 0
Регистрация: 09.01.2017
Сообщений: 42
16.04.2017, 17:32  [ТС] 3
Не совсем понятно выражение Lettersfreq[c]
Массив Lettersfreq заполняется значениями букв в введенной строке?
0
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
16.04.2017, 17:37 4
Цитата Сообщение от marikhuan Посмотреть сообщение
Массив Lettersfreq заполняется значениями букв в введенной строке?
Нет. Буква (с), точнее, ее код, является индексом в массиве Lettersfreq
Ты знаешь, что у каждого символа есть числовой код? A - 65, a - 97, цифра '0' - 48
Вот по этим кодам, как по индексам, запись в массив и происходит...
1
16.04.2017, 17:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.04.2017, 17:37
Помогаю со студенческими работами здесь

Создание статистик и гистограмм
Здраствуйте, получил такую задачку: &quot;Влияние создания статистик и гистограм на запрос соединения...

Построение гистограмм распределения
Есть набор 10000 случайных чисел (во вложении), требуется построить гистограмму распределения. В...

Несколько гистограмм в одном окне
Подскажите, пожалуйста, как правильно построить несколько гистограмм в одном окне Мне нужно...

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru