Я изучаю C с помощью книги «Язык программирования C» и пытаюсь решить упражнение 1.13:
"Напишите программу для печати гистограммы длин слов при ее вводе. Это легко
нарисуйте гистограмму с горизонтальными столбиками; вертикальная ориентация более сложна. "
Я написал код, но когда я нажимаю CTRL + Z (Конец файла), он показывает все нули вместо длины слов.
Может ли кто-нибудь подсказать мне, где я ошибаюсь?
#include <stdio.h>
/* print a histogram of the length of words from input */
main()
{
int c, i, wordn, space;
int lengthn[20];
wordn = space = 0;
for (i = 0; i < 20; ++i)
lengthn[i] = 0;
while ((c = getchar()) != EOF) {
if (c == ' ' || c == '\t' || c == '\n')
if (space == 1) {
++wordn;
space = 0;
++i;
}
if (c != ' ' && c != '\t' && c != '\n') {
++lengthn[i];
space = 1;
}
}
printf("Length: ");
for (i = 0; i < 16; ++i)
printf("%d ", lengthn[i]);
printf("\n --------------------------------------------------------------\n");
printf("Word: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15\n");
}