1. 编写函数fun ,其功能是求形参指向字符串中出现频率最高的字母(不区分大小写),并统计其出现的次数。

例如:形参指向的字符串为abcABsmaxless,程序的执行结果为:letter‘a’:3timesletter‘s’:3times怎么写... 例如:形参指向的字符串为abcABsmaxless,程序的执行结果为:
letter ‘a’ : 3 times
letter ‘s’ : 3 times
怎么写
展开
 我来答
百度网友fb4c2f3
2012-06-07 · TA获得超过435个赞
知道小有建树答主
回答量:193
采纳率:0%
帮助的人:190万
展开全部
主要思路:因为题目要求频率最高的字母且不区分大小写,那么就对应的开一个数组,保存26个字母各自出现的字数就行了。
代码如下:
void fun(char str[]) //必须保证字符数组只含字母,如果不行就得先处理一遍数组
{
int len=strlen(str),i,array[26],max=0,j;

for(i=0;i<26;i++) array[i]=0;

for(i=0;i<len;i++)
{
j=(int)( tolower ( str[i] ) - 'a' ); //使用头文件cstdlib,如果是用C的话,是用stdlib.h
array[ j ]++;
if( array[j] > max ) max=array[j]; //记录最大出现的次数
}

for(i=0;i<26;i++) //输出结果
{
if( array[i] == max )
{
cout<<"letter '"<< (char)('a'+i) <<"': "<<max<<" times"<<endl;
}
}
}
不懂的话再问
追问
运行结果不对
追答
错哪了,发个图看看,我在这边运行正常且无误啊?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式