#include <stdio.h>
#include <string.h>
int main()
{
char string[100];
int c = 0, count[26] = {0};
printf("Enter a string\n");
gets(string);
while ( string[c] != '\0' )
{
if ( string[c] >= 'a' && string[c] <= 'z' )
count[string[c]-'a']++;
else if (string[c] >= 'A' && string[c] <= 'Z')
count[string[c]-'A']++;
c++;
}
for ( c = 0 ; c < 26 ; c++ )
{
if( count[c] != 0 )
printf( "%c %d\n", c+'a', count[c]);
}
return 0;
}
所以我设法让代码将字母频率计算为一个数字。但是我的作业告诉我将其表示为整个字符串的百分比。
例如,输入 aaab 会给我 a - 0.7500,b - 0.2500。
我将如何修改此代码以将其表示为百分比而不是数字?
另外,如果我要在用户输入字符串直到 EOF 的情况下执行此操作,我是否只需删除“输入字符串”打印语句并将 while (string[c] != '\0') 更改为 while (string[c] != EOF)?