#include <stdio.h>
#define IN 1
#define OUT 0
#define maxword 15
main()
{
int j,i,state,c,nc_word;
nc_word = 0;
int count [maxword];
for(i=0;i<=maxword;i++)
count[i]=0;
state = OUT;
while((c=getchar())!= EOF)
{
if( c == ' '|| c == '\t'||c == '\n')
{
if (state == IN){
++count[nc_word];
nc_word = 0;
}
state = OUT;
}
else
{
state = IN;
++nc_word;
}
}
for(i=13 ; i>=1 ; --i)
{
printf("\n%d",i);
for(j=1;j<=count[i];j++){
printf(" *");
}
}
}
该程序打印单词中字符数的直方图。但它将数组 count[] 的最后一个元素设置为 -1(在我的情况下,-1 是 EOF 值)。例如,如果输入中有一个 14 字符的单词,count[14] 应该为 1,但它不起作用.. 它总是设置为 -1。为什么会这样?