Write a program to print a histogram of the lengths of words in its input. It is easy to draw the histogram with the bars horizontal; a vertical orientation is more challenging.
这也是我第一个过百行的代码(带注释,空格什么的)
主要分两个部分:输入和输出
#include < stdio.h >
#define MAXWORDLEN 10
main ( void )
{
int c;
int wordLen = 0;
int thisIdx = 0;
long lengthArray[MAXWORDLEN + 1];
long thisVal = 0;
long maxVal = 0;
//initialize
int inspace = 0;
int firstLetter = 1;
int done = 0;
for ( thisIdx = 0; thisIdx <= MAXWORDLEN; thisIdx++ )
{
lengthArray[thisIdx] = 0;
}
while ( done == 0 )
{
c = getchar();
if ( c == ' ' || c == '\n' || c == '\t' || c == EOF )
{
if ( inspace == 0 )
{
inspace = 1;
firstLetter = 0;
if( wordLen <= MAXWORDLEN )
{
thisVal = ++lengthArray[wordLen - 1];
if ( thisVal > maxVal )
{
maxVal = thisVal;
}
}
else
{
thisVal = ++lengthArray[MAXWORDLEN];
if ( thisVal > maxVal )
{
maxVal = thisVal;
}
}
}
if ( c == EOF )
{
done = 1;
}
}
else
{
if ( inspace == 1 || firstLetter == 1 )
{
wordLen = 0;
inspace = 0;
firstLetter = 0;
}
++wordLen;
}
}