упражнения являетсяK & R Упражнение 1-13
«Написать программу для печати гистограммы длин слов в его входе.»
Вот ответ, указанный в C Answer Book. По какой-то причине он не работает в CodeBlocks, поскольку нет ввода при вводе моего ввода. Почему это так?
Другой вопрос касается wl[i]
; что это?
#include <stdio.h>
#define MAXHIST 15
#define MAXWORD 11
#define IN 1
#define OUT 0
main()
{
int c, i, nc, state;
int len;
int maxvalue;
int ovflow;
int wl[MAXWORD];
state = OUT;
nc = 0;
ovflow = 0;
for(i=0; i < MAXWORD; ++i)
wl[i] = 0;
while((c = getchar()) !=EOF) {
if (c==' '|| c=='\n'|| c == '\t'){
state = OUT;
if (nc>0)
if (nc < MAXWORD)
++wl[nc];
else
++ovflow;
nc=0;
}else if (state == OUT){
state = IN;
nc = 1;
}else
++nc;
}
maxvalue = 0;
for (i = 1; 1<MAXWORD; ++i)
if (wl[i] > maxvalue)
maxvalue = wl[i];
for (i=1; i<MAXWORD; ++i){
printf("%5d - %5d : ", i, wl[i]);
if (wl[i]> 0){
if ((len=wl[i] * MAXHIST/maxvalue) <=0)
len = 1;
}else
len = 0;
while (len > 0) {
putchar('*');
--len;
}
putchar('\n');
}
if (ovflow > 0)
printf("There are %d words >= %d\n", ovflow, MAXWORD);
}
Вы пытались скомпилировать с включенными * all * предупреждениями? – Kevin
Вам действительно нужно прочитать некоторые книги на C, если вы задаете такие вопросы, как то, что является индексом массива. Вы никогда не решите свою проблему, если не поймете, что делаете. – siride
Разве K & R не считается книгой на C? Спасибо за разъяснение, не знал, что это индекс массива. @Kevin Я включил все предупреждения, но я все еще сталкиваюсь с той же проблемой. – MethequalsMath