求C++大神帮我找下错误,题目要求是统计字符串中每个字母出现的次数,并找出最多的字母及次数,在线等
答案:1 悬赏:80 手机版
解决时间 2021-04-01 12:00
- 提问者网友:趣果有间
- 2021-04-01 03:37
求C++大神帮我找下错误,题目要求是统计字符串中每个字母出现的次数,并找出最多的字母及次数,在线等
最佳答案
- 五星知识达人网友:动情书生
- 2021-04-01 04:17
#include "iostream.h"
#include "stdio.h"
#include "string.h"
void freq(char s[],int p[],char *chmax,int *max) //改为*
{
int i;
strlwr(s);
for(i=0;i<=25;i++)
p[i]=0;//26个字母现在均为0个
i=0;
while(s[i]!='\0')
{
if(s[i]>='a'&&s[i]<='z')
p[s[i]-'a']++;
i++;
}
*max=p[0]; // 加*
for(i=0;i<26;i++)
{
if(p[i]>=max)
{
*max=p[i]; //加*
*chmax=i+97; //加*
}
}
void main()
{
char s[80],chmax;
int max,p[26],i;
cout<<"输入字符串"< gets(s);
freq(s,p,&chmax,&max); //加&
for(i=0;i<25;i++)
{
if(p[i]!=0)
cout< }
cout<<"频率出现最高的字母:"< }追问可是按照你的这个改法,只是把函数的传值参数改成指针参数了,我的参数设置是没问题的,而且你可以试试把你的这个敲一下,出来的错误还是那两条:-(
有没有更准确一点的改法?追答main()的前面少;号追问找到了,其实是少了个花括号
#include "stdio.h"
#include "string.h"
void freq(char s[],int p[],char *chmax,int *max) //改为*
{
int i;
strlwr(s);
for(i=0;i<=25;i++)
p[i]=0;//26个字母现在均为0个
i=0;
while(s[i]!='\0')
{
if(s[i]>='a'&&s[i]<='z')
p[s[i]-'a']++;
i++;
}
*max=p[0]; // 加*
for(i=0;i<26;i++)
{
if(p[i]>=max)
{
*max=p[i]; //加*
*chmax=i+97; //加*
}
}
void main()
{
char s[80],chmax;
int max,p[26],i;
cout<<"输入字符串"<
freq(s,p,&chmax,&max); //加&
for(i=0;i<25;i++)
{
if(p[i]!=0)
cout<
cout<<"频率出现最高的字母:"<
有没有更准确一点的改法?追答main()的前面少;号追问找到了,其实是少了个花括号
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯