首先解决的是文件读入的问题;
第二 统计单词个数,排序,输出频率最高的10个。
首先用二维数组存储单词和单词的个数;
然后根据单词个数的多少用冒泡排序;并且将单词的个数同时也拍好;然后输出
程序源代码
#define N 20
#define M 100
#include<stdio.h>
#include<string.h>
int main()
{char m[20];
int k=0;
int d[M];
char b[N],e[10000];
char a[M][N];
char q[N];
char c=0;
int i,j,t;
for(i=0;i<M;i++)
d[i]=0;
printf("请输入文件名\n");
gets(m);
FILE *fp;
int n=0,o=0;
if(!(fp=fopen(m,"r+")))
{printf("文件未找到\n");}
else
{
while(c!='#')/*判断是否到文件末尾*/
{for(i=0;i<N;i++)/*读入一个单词*/
{
fscanf(fp,"%c",&c);
if(c==' '||c=='#') break;
else b[i]=c;
}
b[i]='\0';/*结尾符*/
if(k==0) {strcpy(a[k],b);d[k++]++;}/*第一次,把b复制到a【0】*/
else {
for(i=0;i<k;i++)
{
if(!strcmp(b,a[i])) {d[i]++;break;}
}
if(i==k){strcpy(a[k],b);d[k]++;k++;}
}
}
}
for(i=0;i<k;i++)
{
for(j=0;j<k-i;j++)
{
if(d[j]<d[j+1])
{
t=d[j];
d[j]=d[j+1];
d[j+1]=t;
strcpy(q,a[j]);
strcpy(a[j],a[j+1]);
strcpy(a[j+1],q);
}
}
}
for(i=0;i<10;i++)
printf("%s %d\n",a[i],d[i]);
getchar();
return 0;}
亲 屌丝 不会插入图片。。。不要鄙视我 。。。我 操蛋疼
这个程序,参考了网上的一部分,询问同学,自己编写的排序部分;其实还可以再加上在程序中创建文件的功能不过,谁闲的无聊自己打那么多文字。。。。。所以没有实现那个功能;我擦 我是脑残 刚才插图片不知道怎么以前的内容就没了 气死我了。。所以直接复制代码了。。。