#include <stdio.h>
#include "string.h"
#define NULL 0
#define LINE 100
#define COLUMN 30
int ReadFile(FILE *infile);
void Sort(int n);
char arr[LINE][COLUMN];
int flag[LINE];
main()
{
FILE *infile;
char *c;
int m=0,n=0,i,line;
clrscr();
printf("这个程序统计文件中单词的个数。/n");
while(1)
{
printf("File name:");
gets(c);
infile=fopen(c,"r");
if(infile!=NULL)break;
printf("File %s not found--Try again./n",c);
}
line=ReadFile(infile);
fclose(infile);
Sort(line);
printf("Word frequency table:/n");
for(m=0;m<line;m++)
{
while(1)
{
if(arr[m][n]=='/n')break;
printf("%c",arr[m][n]);
n++;
}
if(n<8)
{
for(i=0;i<8-n;i++)
printf(" ");
}
printf("/t%d/n",flag[m]);
n=0;
}
getch();
}
int ReadFile(FILE *infile)
{
int ch,i=0,j=0,n;
for(;i<LINE;i++)
flag[i]=1;
i=0;
while((ch=getc(infile))!=EOF)
{
ch=tolower(ch);
if(ch=='/n')continue;
if(ch>='a'&&ch<='z')
{
arr[i][j]=ch;
j++;
}
else
{
arr[i][j]='/n';
i++;
j=0;
for(n=0;n<i-1;n++)
{
if((strcmp(arr[n],arr[i-1]))==0)
{
i--;
flag[n]+=1;
break;
}
}
}
}
arr[i][0]=NULL;
return i;
}
void Sort(int n)
{
int i,j,k,tmp;
char *temp;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
{
if((strcmp(arr[k],arr[j]))>0)
k=j;
}
if(k!=i)
{
strcpy(temp,arr[i]);
strcpy(arr[i],arr[k]);
strcpy(arr[k],temp);
tmp=flag[i];
flag[i]=flag[k];
flag[k]=tmp;
}
}
}
1095

被折叠的 条评论
为什么被折叠?



