0 / 0 / 0
Регистрация: 26.04.2015
Сообщений: 14

Не получается реализовать вертикальную гистограмму

06.08.2015, 20:41. Показов 2060. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В упражнении 1.13 "Керниган Риччи" не получается вертикальная гистограмма. В интернете есть готовые коды но нет понятных разъяснений. Помогите пожалуйста.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.08.2015, 20:41
Ответы с готовыми решениями:

Построить вертикальную гистограмму, показывающую число чисел в строке
Что-то не могу понять как реализовать... Накатал горизонтальную: #include "stdafx.h" #include <stdio.h> int...

Вывести вертикальную гистограмму длин слов введенного текста
Вывести вертикальную гистограмму длин слов введенного текста

Вывести вертикальную гистограмму длин слов введенного текста
Здравствуйте, дали задачу "вывести вертикальную гистограмму длин слов введенного текста". не особо понимаю как это реализовать . Нужен...

2
1615 / 1181 / 552
Регистрация: 08.01.2012
Сообщений: 4,555
07.08.2015, 06:51
Лучший ответ Сообщение было отмечено aikena1989 как решение

Решение

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
void main(int argc,char* argv[])
{
    char a[22][80];
    int i,j,n;
 
    //setlocale(LC_ALL,"Rus");
    for(i=0; i<22; i++)
    {
        a[i][0]='|';
        for(j=1; j<79; j++) a[i][j]=' ';
        a[i][79]=0;
    }
    srand(time(0));
    for(i=1; i<79; i++)
    {
        n=21-rand()%22;
        for(j=21; j>=n; j--) a[j][i]='*';
    }
    printf("Y\n");
    for(i=0; i<22; i++) printf("%s\n",a[i]);
    printf("+");
    for(i=0; i<78; i++)printf("-");
    printf("X");
    getch();
}
0
738 / 543 / 416
Регистрация: 17.09.2015
Сообщений: 1,601
05.10.2015, 14:49
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
#include <stdio.h>
/*программа печатающая вертикальную гистограмму вводимых символов в словах*/
#define IN 1 /*внутри слова*/
#define OUT 0/*вне слова*/
#define MAXWORDS 80 /*максимальное количество слов в нашей гистограмме 80*/
 
int main()
{
int i, j, c, state; /*i-индекс массива слов, j-количество символов в слове, с - вводимый символ,
                      state - состояние переменной с ( IN - внутри слова, OUT - вне слова) */
int lenword [MAXWORDS], nextword, maxlen;/*счетчик массива слов,следующее слово,самое
                                           длинное слово*/
nextword = maxlen = 0;
for (i = 0; i < MAXWORDS; ++i)/*инициализируем цикл*/
    lenword [i] = 0;
state = OUT;
 
while ((c = getchar())!= EOF && nextword < MAXWORDS) {
    if ( c == ' ' || c == '\n' || c == '\t'){    /*1.если сначала вводится символ-разделитель,то */
        if (state == IN){                        /*программа ничего не делает,т.к. не выполняется*/
            if (lenword [nextword] > maxlen)     /*условие state == IN;( у нас state == OUT)*/
                    maxlen = lenword [nextword]; /*2.если вводится любой другой символ,программа */
        ++nextword; state = OUT; }               /*переходит к else, state становится IN и включа*/
    }                                            /*ется счетчик lenword [0],т.е. счетчик первого */
    else {                                       /*слова массива*/
        if (state == OUT)                        /*3.при появлении на вводе символа-разделителя */
            state = IN;                          /*(условие state == IN на этот раз выполнено) */
            ++lenword [nextword];                /*проверяется условие lenword [0] > maxlen, оно */
            }    /*истинно и тогда maxlen = lenword [0]. 4.переменная nextword увеличивается на 1 */
          }      /* т.е. счетчик символов приобретает индекс 1-lenword[1],state присваивается OUT */
for (j = maxlen; j > 0; --j){    /* Печатание гистограммы. 1.Переменной j присваисается значение */
    for(i = 0; i < nextword; ++i){ /*самого длинного слова из введенных,т.е. maxlen,это будет */
        if (lenword[i] >= j)       /*высота нашей гистограммы. 2. Цикл внутри цикла for печатает */
            putchar('#');          /*строку начиная со счетчика первого слова lenword[0], если */
        else                       /*это не самое длинное слово то печатается пробел,цикл перехо-*/
                putchar(' ');      /*дит к следующему слову (++i) и каретка смещается на одно поле*/
                }                  /*вправо.Когда цикл доходит до самого длинного слова,то печа-*/
     putchar('\n') ;               /*тает #. 3.Когда "внутренний" цикл доходит до последнего слова*/
}                                  /*условие i < nextword перестает выполняться и цикл завершает */
                                   /*свою работу и программа переходит к функции putchar('\n'),*/
        return 0;                  /*т.е. каретка принтера переходит на новую строку. 4.выполня- */
}                                  /*ется --j и запускается следующий цикл "наружного" цикла for. */
                                   /*5. когда j дойдет до нуля,условие j>0 перестанет выполняться */
                                   /* и цикл прекратит работу.   Программа завершена.  */
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.10.2015, 14:49
Помогаю со студенческими работами здесь

Реализовать вертикальную полосу прокрутки
Мне нужно создать область, в неё можно будет добавлять виджеты, которые будут постоянно добавляться в &quot;самый низ&quot; все виджетов. И...

Как реализовать вертикальные кнопки и вертикальную панель
Уважаемые Гуру! Как делаются вертикальные кнопки в WPF? Вертикальная панель инструментов , например у левой кромки экрана? Выплывающая...

Реализовать гистограмму из результатов вычислений
Здравствуйте господа! Возникла проблема в реализации задачи. Не пойму как собрать гистограмму из результатов вычислений. код работает (сюда...

Как реализовать гистограмму яркостей в Open CV?
Как реализовать гистограмму яркостей в Open Cv. Использую cv::Mat mat = cv::imread(&quot;image.jpg&quot;, CV_LOAD_IMAGE_GRAYSCALE); ...

Реализовать функцию, которая по входным данным строит круговую диаграмму и гистограмму
написать процеуру которая по входным данным, например по результатам экзаменационной сессии, строит круговую диаграмму и гистограмму.


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

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

Новые блоги и статьи
Мысли в слух
kumehtar 07.11.2025
Заметил среди людей, что по-настоящему верная дружба бывает между теми, с кем нечего делить.
Новая зверюга
volvo 07.11.2025
Подарок на Хеллоуин, и теперь у нас кроме Tuxedo Cat есть еще и щенок далматинца: Хочу еще Симбу взять, очень нравится. . .
Инференс ML моделей в Java: TensorFlow, DL4J и DJL
Javaican 05.11.2025
Python захватил мир машинного обучения - это факт. Но когда дело доходит до продакшена, ситуация не так однозначна. Помню проект в крупном банке три года назад: команда data science натренировала. . .
Mapped types (отображённые типы) в TypeScript
Reangularity 03.11.2025
Mapped types работают как конвейер - берут существующую структуру и производят новую по заданным правилам. Меняют модификаторы свойств, трансформируют значения, фильтруют ключи. Один раз описал. . .
Адаптивная случайность в Unity: динамические вероятности для улучшения игрового дизайна
GameUnited 02.11.2025
Мой знакомый геймдизайнер потерял двадцать процентов активной аудитории за неделю. А виновником оказался обычный генератор псевдослучайных чисел. Казалось бы - добавил в карточную игру случайное. . .
Протоколы в Python
py-thonny 31.10.2025
Традиционная утиная типизация работает просто: попробовал вызвать метод, получилось - отлично, не получилось - упал с ошибкой в рантайме. Протоколы добавляют сюда проверку на этапе статического. . .
C++26: Read-copy-update (RCU)
bytestream 30.10.2025
Прошло почти двадцать лет с тех пор, как производители процессоров отказались от гонки мегагерц и перешли на многоядерность. И знаете что? Мы до сих пор спотыкаемся о те же грабли. Каждый раз, когда. . .
Изображения webp на старых x32 ОС Windows XP и Windows 7
Argus19 30.10.2025
Изображения webp на старых x32 ОС Windows XP и Windows 7 Чтобы решить задачу, использовал интернет: поисковики Google и Yandex, а также подсказки Deep Seek. Как оказалось, чтобы создать. . .
Passkey в ASP.NET Core identity
stackOverflow 29.10.2025
Пароли мертвы. Нет, серьезно - я повторяю это уже лет пять, но теперь впервые за это время чувствую, что это не просто красивые слова. В . NET 10 команда Microsoft внедрила поддержку Passkey прямо в. . .
Последние результаты исследования от команды MCM (октябрь 2025 г.)
Programma_Boinc 29.10.2025
Последние результаты исследования от команды MCM (октябрь 2025 г. ) Поскольку мы продолжаем изучать гены, которые играют ведущую роль в развитии рака, в рамках проекта "Картирование раковых. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru