Hello, I am currently working on a exercise in K&R book which by the is an excellent book, but the solutions on the net really do not have any comments what so ever. Any help in clearing up my confusion would be greatly helpful. Before I ask questions, let me show you the code found on the interent
Code:
#include<stdio.h>
#defineMAXWORDLEN10
intmain(void)
{
intc;
intinspace = 0;
longlengtharr[MAXWORDLEN+ 1];
intwordlen = 0;
intfirstletter = 1;
longthisval = 0;
longmaxval = 0;
intthisidx = 0;
intdone = 0;
for(thisidx= 0; thisidx <= MAXWORDLEN;thisidx++)
{
lengtharr[thisidx]= 0;
}
while(done== 0)
{
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);
getch();
return0;
}
Question 1: When the lengtharr[thisidx] is being initialized, does that make thisidx equal to zero or its just a first element?
Question 2: Which part stores the word count in the array or is it being store at all?
Question 3: what does
Code:
thisval = ++lengtharr[MAXWORDLEN];
do, does it adds an element or what?
The output of the code is on The C Programming Language Exercise 1-13
please scroll down.
Any help is greatly appreciated and thank you for your time in reading this lengthy post.
EDIT: the code is on the link as well, since I still don't know how to scroll the code on here.