[题目描述]统计若干行英文中单词的个数和每个单词出现的次数。 [输入]若干行英语。 [输出]单词数量及每个单词出现的次数。
#include
#include
struct word
{
char c[30];
int n;
}w[10000];
main()
{
FILE *fp;
char b[30],ch;
int i=0,m=1,j=0,k=0,t=0,flag=0;
fp=fopen("d://a.txt","r+");
while((ch=fgetc(fp))!=EOF)
{
if('A'<=ch&&ch<='Z') ch=ch+32;
if('a'<=ch && ch<='z')
{b[i]=ch;i++;flag=1;}
else
{
if(ch=='-'&&(ch=fgetc(fp))=='\n')
{
flag=0;
}
else
{
if(flag==1)
{ b[i]='\0';i=0;flag=0;m=0;
for(j=0;j<k;j++)
{
if(strcmp(b,w[j].c)==0)
{m=1;break;}
}
if(m) w[j].n++;
else
{w[k].n=1;strcpy(w[k].c,b);k++;}
}
}
if('A'<=ch && ch<='Z') ch+=32;
if('a'<=ch && ch<='z')
{b[i]=ch;i++;flag=1;}
}
}
// printf("%d\n",k);
for(i=0;i printf("\n");
for(i=0;i {
t=0;
while(w[t].n==0) t++;
for(j=1;j {
if(w[j].n>w[t].n) t=j;
else
if(w[j].n==w[t].n)
{
if(strcmp(w[j].c,w[t].c)<0)
t=j;
}
}
printf("%s %d\n",w[t].c,w[t].n);
w[t].n=0;
}
return 0;
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。