用C++编程(统计字母的使用频率)

要求用C++语言编程,在VisualC++环境下调试完成;用coutcin来完成输入输出要求按照程序功能分成几个功能模块来实现,各个功能模块分别使用函数来完成;为统计英文... 要求用C++语言编程,在Visual C++环境下调试完成;
用cout cin来完成输入输出
要求按照程序功能分成几个功能模块来实现,各个功能模块分别使用函数来完成;
为统计英文字母的使用频率,输入一个不包括空格的由英文字母组成的字符串,长度不超过200个字符。统计26个英文字母的使用频率,不区分大小写。最后按使用频率从大到小输出字母(小写字母)和使用频率(出现的次数)。
按照程序要求,本程序应采用模块化设计方法,设计几个功能模块。例如(仅供参考):
l 将字符串中的大写字母转换为小写字母
l 统计输入的字符串中字母的使用频率
l 按使用频率从大到小进行排序
主函数中控制输入、函数调用和输出。
1) 为统计字母的使用频率,定义一个长度为26的int数组存放所统计的各个字母的使用频率。
2) 在统计字母的使用频率时,不要使用if语句或switch语句,利用字母的ASCII码与数组元素下标之间的关系来求得。
3) 按使用频率从大到小进行排序时,建议使用指针数组更为方便。
展开
 我来答
匿名用户
2013-11-22
展开全部
#include <iostream.h>
char Caps(char ch)
{
if (ch>='A' && ch<='Z')
return ch+32;
else
return ch;
}

void count(int *a, char *s)
{
while (s) a[*s++ - 97]++;
}
void swap(int &x,int &y)
{
int temp=x;
x=y;
y=temp;
}
void swap(char &x,char &y)
{
char temp=x;
x=y;
y=temp;
}
void sort(int *a, char *b,int n)
{
int i,j;
for (i=0;i<n-1;i++)
for (j=i+1;j<n;j++)
if(a[i]<a[j])
{
swap(a[i],a[j]);
swap(b[i],b[j]);
}
}
void print(int *a,char *b,int n)
{
int i;
for(i=0;i<n;i++)
cout<<b[i]<<":"<<a[i]<<endl;
}
void main()
{
int i,pm[26];
char ch[26];
char s[201];
cin>>s;
cout<<s<<endl;
for (i=0;i<26;i++)
{
pm[i]=0;
ch[i]=i+'a';
}
count(pm,s);
sort(pm,ch,26);
print(pm,ch,26);
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式