2个回答
展开全部
一、题目:统计字母的使用频率
二、功能描述
输入一个不包括空格的由英文字母组成的字符串,长度不超过200个字符。统计26个英文字母的使用频率,不区分大小写。最后按使用频率从大到小输出字母(小写字母)和使用频率(出现的次数)。
三、解决方案(流程图)
提示用户输入字母
获取字母,并存在数组c[]中
计算每个字母使用的次数,存在数组sum[]中
显示结果
字母排序
四、主要函数描述
void sort(char *a,int *sum) //定义函数 函数功能:排序
{
int i,j,k,temp1,temp2;
for(i=0;i<26;i++) //采用选择排序
{
for(j=i+1;j<26;j++)
{
if(sum[j]>sum[i])
{k=j;
temp1=a[i];temp2=sum[i];
sum[i]=sum[k];sum[k]=temp2;
a[i]=a[k];a[k]=temp1;}
}
}
}
void main()
{
char c[200];
int sum[26],i,j;
char a[26];
printf("1.欢迎使用字母频数统计程序\n");
printf("2.请输入字母~(^-^)~\n");
for(i=0;i<26;i++) //初始化数组
{ a[i]=i;
sum[i]=0;
}
for(i=0;(c[i]=getchar())!='\n';i++);//输入选项
c[i]='\0';
for(i=0;c[i]!='\0';i++)
{
if(c[i]>='A'&&c[i]<='Z') c[i]+=32; //大写字母转小写
sum[c[i]-'a']++;
}
sort(a,sum); //执行函数排序
for(j=0;j<26;j++)
{
printf("%c\t",a[j]+'a');
printf("%d",sum[j]);
printf("\n");
}
}
五、主要技术问题
1) 为统计字母的使用频率,定义一个长度为26的int数组存放所统计的各个字母的使用频率。
2) 在统计字母的使用频率时,不要使用if语句或switch语句,利用字母的ASCII码与数组元素下标之间的关系来求得。
3) 按使用频率从大到小进行排序时,建议使用指针数组更为方便。
六、结论
此次编程实现了统计字母的使用频率功能。
通过编程实现本题所述的功能,锻炼了我综合利用C语言进行程序设计的能力,熟悉了字符串的操作方法,加强了函数的运用,提高了软件系统分析能力和程序文档建立、归纳总结的能力。
二、功能描述
输入一个不包括空格的由英文字母组成的字符串,长度不超过200个字符。统计26个英文字母的使用频率,不区分大小写。最后按使用频率从大到小输出字母(小写字母)和使用频率(出现的次数)。
三、解决方案(流程图)
提示用户输入字母
获取字母,并存在数组c[]中
计算每个字母使用的次数,存在数组sum[]中
显示结果
字母排序
四、主要函数描述
void sort(char *a,int *sum) //定义函数 函数功能:排序
{
int i,j,k,temp1,temp2;
for(i=0;i<26;i++) //采用选择排序
{
for(j=i+1;j<26;j++)
{
if(sum[j]>sum[i])
{k=j;
temp1=a[i];temp2=sum[i];
sum[i]=sum[k];sum[k]=temp2;
a[i]=a[k];a[k]=temp1;}
}
}
}
void main()
{
char c[200];
int sum[26],i,j;
char a[26];
printf("1.欢迎使用字母频数统计程序\n");
printf("2.请输入字母~(^-^)~\n");
for(i=0;i<26;i++) //初始化数组
{ a[i]=i;
sum[i]=0;
}
for(i=0;(c[i]=getchar())!='\n';i++);//输入选项
c[i]='\0';
for(i=0;c[i]!='\0';i++)
{
if(c[i]>='A'&&c[i]<='Z') c[i]+=32; //大写字母转小写
sum[c[i]-'a']++;
}
sort(a,sum); //执行函数排序
for(j=0;j<26;j++)
{
printf("%c\t",a[j]+'a');
printf("%d",sum[j]);
printf("\n");
}
}
五、主要技术问题
1) 为统计字母的使用频率,定义一个长度为26的int数组存放所统计的各个字母的使用频率。
2) 在统计字母的使用频率时,不要使用if语句或switch语句,利用字母的ASCII码与数组元素下标之间的关系来求得。
3) 按使用频率从大到小进行排序时,建议使用指针数组更为方便。
六、结论
此次编程实现了统计字母的使用频率功能。
通过编程实现本题所述的功能,锻炼了我综合利用C语言进行程序设计的能力,熟悉了字符串的操作方法,加强了函数的运用,提高了软件系统分析能力和程序文档建立、归纳总结的能力。
展开全部
E是使用频率最高的,下面是英文字母使用频率表:(%)
A 8.19 B 1.47 C 3.83 D 3.91 E 12.25 F 2.26 G 1.71
H 4.57 I 7.10 J 0.14 K 0.41 L 3.77 M 3.34 N 7.06
O 7.26 P 2.89 Q 0.09 R 6.85 S 6.36 T 9.41
U 2.58 V 1.09 W 1.59 X 0.21 Y 1.58 Z 0.08
A 8.19 B 1.47 C 3.83 D 3.91 E 12.25 F 2.26 G 1.71
H 4.57 I 7.10 J 0.14 K 0.41 L 3.77 M 3.34 N 7.06
O 7.26 P 2.89 Q 0.09 R 6.85 S 6.36 T 9.41
U 2.58 V 1.09 W 1.59 X 0.21 Y 1.58 Z 0.08
参考资料: http://zhidao.baidu.com/question/7200965.html
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询