词频统计
1.开始时写的是:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define max 100
int main()
{
char str[max];
int a[27];
char s;
int length;
int i,j,k,l;
while(scanf("%s",str)!=EOF)
{
for(i=1;i<=26;i++)
{
a[i] = 0;
}
length = strlen(str);
for(i=0;i<length;i++)
{
s = str[i];
}
if('A'<=s&&s<='Z')
{
a[s-'A'+1] ++;
}
else
{
a[s-'a'+1] ++;
}
for(i=1;i<=26;i++)
{
if(a[i]!=0)
{
printf("%c : %d\n",'a'+i-1,a[i]);
}
}
}
return 0;
}
看到别人写的就想做整个词的
#include <stdio.h>
#include <stdlib.h>
#include<stdio.h>
#include<string.h>
#define max 100
int main()
{
char string[max][max];
char s[max];
while(1)
{
gets(s);
int x1,x2;
int i,k = 0;
for(i=0;i<strlen(s);i++)
{
if(i==0)
{
x1 = 0;
continue;
}
if(s[i]==' ')
{
x2= i-1;
strncpy(string[k],s+x1,x2-x1+1);
k++;
x1 = i+1;
}
}
strcpy(string[k],s+x1);
k++;
for(i=0;i,k;i++)
{
printf("%s\n",string[i]);
}
}
return 0;
}
小结:可能做得不多,但是真的用心做了。我是跨专业的,写这些也花了很多时间,同时也学到了很多东西。刚开始只是想要做出来每个字母的频率,将字母都变为小写,用数组的方式来计数,现在看到了其他人交的是每个单词的统计,只得再去做,现在只能做出这么多,但是我会努力把它做好。将其实现的功能变完善,一边查资料,一边问别人,学习很充实也很忙碌。
地址:https://coding.net/u/brilliant/p/cptj/git/tree/master