用C++编程(统计字母的使用频率)
要求用C++语言编程,在VisualC++环境下调试完成;用coutcin来完成输入输出要求按照程序功能分成几个功能模块来实现,各个功能模块分别使用函数来完成;为统计英文...
要求用C++语言编程,在Visual C++环境下调试完成;
用cout cin来完成输入输出
要求按照程序功能分成几个功能模块来实现,各个功能模块分别使用函数来完成;
为统计英文字母的使用频率,输入一个不包括空格的由英文字母组成的字符串,长度不超过200个字符。统计26个英文字母的使用频率,不区分大小写。最后按使用频率从大到小输出字母(小写字母)和使用频率(出现的次数)。
按照程序要求,本程序应采用模块化设计方法,设计几个功能模块。例如(仅供参考):
l 将字符串中的大写字母转换为小写字母
l 统计输入的字符串中字母的使用频率
l 按使用频率从大到小进行排序
主函数中控制输入、函数调用和输出。
1) 为统计字母的使用频率,定义一个长度为26的int数组存放所统计的各个字母的使用频率。
2) 在统计字母的使用频率时,不要使用if语句或switch语句,利用字母的ASCII码与数组元素下标之间的关系来求得。
3) 按使用频率从大到小进行排序时,建议使用指针数组更为方便。 展开
用cout cin来完成输入输出
要求按照程序功能分成几个功能模块来实现,各个功能模块分别使用函数来完成;
为统计英文字母的使用频率,输入一个不包括空格的由英文字母组成的字符串,长度不超过200个字符。统计26个英文字母的使用频率,不区分大小写。最后按使用频率从大到小输出字母(小写字母)和使用频率(出现的次数)。
按照程序要求,本程序应采用模块化设计方法,设计几个功能模块。例如(仅供参考):
l 将字符串中的大写字母转换为小写字母
l 统计输入的字符串中字母的使用频率
l 按使用频率从大到小进行排序
主函数中控制输入、函数调用和输出。
1) 为统计字母的使用频率,定义一个长度为26的int数组存放所统计的各个字母的使用频率。
2) 在统计字母的使用频率时,不要使用if语句或switch语句,利用字母的ASCII码与数组元素下标之间的关系来求得。
3) 按使用频率从大到小进行排序时,建议使用指针数组更为方便。 展开
1个回答
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);
}
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);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询