void Letter_Frequency(string * text)
{
//统计给定文本text中每个字母出现的频率
char alph[]={"abcdefghijklmnopqrstuvwxyz"};
float freq[26]={0};
int total=0;
int n,i;
n= len(text);
string c;
for(i=0;i<n;i++)
{
SubStr(&c,text,i,1);
if(Index(alph,c)>0)
{
total++;
alph[(int)(c.ch[0]-'a']++;
}
}
for(i=0;i<26;i++)
{
freq[i]=alph[i]/total;
if(freq[i]!=0)
printf("%c:%f\n",(char)(i+(int)'a'),freq[i];
}
}
**算法代码如上或者如下图,不是很理解这个代码,比如其中的
SubStr(&c,text,i,1);
if(Index(alph,c)>0)
total++;
alph[(int)(c.ch[0]-'a']++;**
这一串代码不是很理解,还有
freq[i]=alph[i]/total;
if(freq[i]!=0)
printf("%c:%f\n",(char)(i+(int)'a'),freq[i];
这一些不是很理解,有专家说一下原理吗