/* Copyright (c) 1996, SAS Institute Inc. */ /* Unpublished - All Rights Reserved */ /* Language: C */ /* Simple word counting program. This program provides */ /* three types of statistical output on any given file(s) */ /* 1) total words, 2) average length, and 3) mdeian length*/ /* */ #include #include #include #define TRUE 1 #define FALSE 0 #define MAXLEN 32 /* Maximum length of a word */ void readin(FILE *); void stats(int, int, int *); /*------------------MAIN------------------------------*/ /* Open input file. Call readin */ /* */ void main() { FILE *input; /* input file */ /* open input file */ if ((input = fopen("ddn:DATAIN","r")) != NULL) readin(input); else { fprintf(stderr,"Error: cannot open input file\n"); exit(1); } exit(0); } /*------------------READIN----------------------*/ /* Read in words from input file and compute */ /* stats. Call stats to print stat output. */ /* */ void readin(f) FILE *f; { int totalwords=0,lengthsum=0,wordlen=0, wordcnt(|MAXLEN|), /* counter for each length total */ i,c,inword=FALSE; /* initialize wordcnt */ for(i=0;i 0) { /* Compute the mean */ average=((double)lengthsum)/totalwords; /* Compute median value */ halfwords = totalwords/2; for(i=0,count=0;count <= halfwords;i++) count+=wordcnt(|i|); /* if even number of words */ if(totalwords % 2 == 0) { for(j=0,count=0;count < halfwords;j++) count+=wordcnt(|j|); median=(i+j)/2; } /* else odd number of words */ else median=i; } /* display the statistics */ printf("Totalwords: %d\n",totalwords); printf("Average length: %4.3f\n",average); printf("Median: %d\n\n",median); }