这是C语言的一道题目,我真的是看不明白,能不能请大家帮忙把这段代码好好的注解下,小弟在此先谢过。(这段代码挺经典的,我都想背下来)。
#include
#define MAXWORDLEN 10
int main(void)
这是C语言的一道题目,我真的是看不明白,能不能请大家帮忙把这段代码好好的注解下,小弟在此先谢过。(这段代码挺经典的,我都想背下来)。
#include
#define MAXWORDLEN 10
int main(void)
{
int c;
int inspace = 0;
long lengtharr[MAXWORDLEN + 1];
int wordlen = 0;
int firstletter = 1;
int thisval = 0;
long maxval = 0;
int thisidx = 0;
int done = 0;
for (thisidx = 0; thisidx <= MAXWORDLEN; thisidx++)
{
lengtharr[thisidx] = 0;
}
while (0 == done)
{
c = getchar();
if (c == ' ' || c == '\t' || c == '\n' || c == EOF)
{
if (inspace == 0)
{
firstletter = 0;
inspace = 1;
if (wordlen <= MAXWORDLEN)
{
if (wordlen > 0)
{
thisval = ++lengtharr[wordlen - 1];
if (thisval > maxval)
{
maxval = thisval;
}
}
}
else
{
thisval = ++lengtharr[MAXWORDLEN];
if (thisval > maxval)
{
maxval = thisval;
}
}
}
if (c == EOF)
{
done = 1;
}
}
else
{
if (inspace == 1 || firstletter == 1)
{
wordlen = 0;
firstletter = 0;
inspace = 0;
}
++wordlen;
}
}
for (thisval = maxval; thisval > 0; thisval--)
{
printf("%4d |", thisval);
for (thisidx = 0; thisidx <= MAXWORDLEN; thisidx++)
{
if (lengtharr[thisidx] >= thisval)
{
printf(" * ");
}
else
{
printf(" ");
}
}
printf("\n");
}
printf(" +");
for (thisidx = 0; thisidx <= MAXWORDLEN; thisidx++)
{
printf("---");
}
printf("\n ");
for (thisidx = 0; thisidx <= MAXWORDLEN; thisidx++)
{
printf("%2d ", thisidx + 1);
}
printf(">%d\n", MAXWORDLEN);
return 0;
}
展开
全部