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;
} 展开
这是我写的,大神帮忙改改吧!
#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;
} 展开
3个回答
展开全部
#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;
}
#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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你昨天不是发过了吗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询