//T06
#include
#include
#include
#include
#include
#include

int main(int argc, char *argv[])
{
FILE *fpin;
char inbuf[BUFSIZ],*word;
int i,number_of_words=0,length=0;
int chekword(char *);
char *getword(char *,char *);

if(argc!=2)
return(-1);
if( (fpin=fopen(argv[1],"r"))==NULL )
{
perror(argv[1]);
return (-1);
}
word=NULL;
while( fgets(inbuf,BUFSIZ,fpin) ) //kopiryem v massiv inbuf ne bolshe
while( word=getword(word,inbuf) ) // chem BUFSIZ iz potoka
if (chekword(word)==1)
{
if (word[strlen(word)-1]=='\n')
length+=strlen(word)-1;
else
length+=strlen(word);
number_of_words++;
}
if (length==0) {printf("No words\n"); return -1;}
else length/=number_of_words;
fprintf(stderr,"Srednya Dlinna - %d\n",length);
number_of_words=0;
rewind(fpin);
while( fgets(inbuf,BUFSIZ,fpin) )
{
while( word=getword(word,inbuf) )
{
if (chekword(word)==1)
{
if (word[strlen(word)-1]=='\n'&&strlen(word)<=length+1)
number_of_words++;
if (word[strlen(word)-1]!='\n'&&strlen(word)<=length)
number_of_words++;
}
}
}
fprintf(stderr,"Number of words - %d\n",number_of_words);
fclose(fpin);
}

char *getword(char *word,char *inbuf)
{
if(word!=0)
word=strtok(NULL," \t"); //prodolaem poisk v massive inbuf
else
word=strtok(inbuf," \t"); //nachinaem iskat snachala probel ili tab
return (word);
}
int chekword(char *word)
{
int i;
if (word[0]=='\n') return 0;
for (i=0; i if (word[i]!='\n')
if (isalpha(word[i])==0)
return 0;
return 1;
}





Чтобы не видеть здесь видео-рекламу достаточно стать зарегистрированным пользователем.
Чтобы не видеть никакую рекламу на сайте, нужно стать VIP-пользователем.
Это можно сделать совершенно бесплатно. Читайте подробности тут.