C++,求大神帮忙,统计字符串中各个字母出现的频率!

要求字符串含空格,且不区分大小写,同时找出频率出现最高的字母及次数,函数形式:voidfreq(chars[],intp[],char&chmax,int&max)这是我... 要求字符串含空格,且不区分大小写,同时找出频率出现最高的字母及次数,函数形式:void freq(char s[],int p[],char &chmax,int &max)

这是我写的,大神帮忙改改吧!
#include"iostream.h"
#include"string.h"
#include"stdio.h"
void freq(char s[],int p[],char &chmax,int &max);
{
int x;
for(int i=0;s[i]!='\0';i++)
for(int j=0;p[j]!='\0';j++)
if(s[i]==p[j])
x++;
cout<<p[j]<<"----"<<x<<endl;
}
void main()
{
char s1[80],chmax1;
int s2[80],max1;
gets(s1);
freq(s1,s2,chmax1,max1);
cout<<"频率出现最高的字母:"<<max1<<"----"<<chmax1;
}
展开
 我来答
520ckyear
2014-04-13 · TA获得超过302个赞
知道小有建树答主
回答量:433
采纳率:100%
帮助的人:128万
展开全部
#include <stdio.h>
#include <stdlib.h>

void print(char *c){
    char *p = c;
    int a[52];
    int i;
    int max = 0;
    for(i=0; i<52; i++)
        a[i] = 0;

    while(*p){
        int flag = 0;
        for(i=65; i<91; i++){
            if(*p == i){
                a[i-65]++;
                flag = 1;
                break;
            }
        }
        if(!flag){
            for(i=97; i<123; i++){
                if(*p == i){
                    a[i-71]++;
                    break;
                }
            }
        }
        p++;
    }

    max = a[0];
    for(i=0; i<52; i++){
        if(a[i] > max)
            max = a[i];
    }
    while(max--){
        int flag = 0;
        for(i=0; i<52; i++){
            if(a[i] == max){
                flag = 1;
printf("第二多的字符为: ");
                if(i<26){
                    printf("%c  ",i+65);
                }else{
                    printf("%c  ",i+71);
                }
printf("共出现了%d次\n",max);
            }
        }
        if(flag)
            break;
    }
}

int main(){
    char str[20];
    printf("Please enter the string: ");
    scanf("%s",str);
    print(str);
printf("\n");

    return 0;
}
匿名用户
2014-04-13
展开全部
要不要这么麻烦....
#include<iostream>
using namespace std;
string i;
int a[256],max=0,k;
int main()
{
cin>>i;
for (int q=0;q<i.length();q++) a[i[q]]++;
for (int q=0;q<256;q++)
{
if (max<a[q]) {max=a[q];k=q;}
cout<<char(q)<<" : "<<a[q];
}
cout<<endl<<char(k);
system("pause");
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e608075
2014-04-13 · TA获得超过243个赞
知道小有建树答主
回答量:302
采纳率:57%
帮助的人:134万
展开全部
你昨天不是发过了吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式