求助C语言编程题,急用,谢谢
判断一个由a-z这26个字符组成的字符串中哪个字符出现的次数最多。输入数据:一个由a-z26个字符组成的字符串,只考虑小写的情况。输出要求:包括出现次数最多的字符和该字符...
判断一个由a-z这26个字符组成的字符串中哪个字符出现的次数最多。
输入数据:一个由a-z 26个字符组成的字符串,只考虑小写的情况。
输出要求:包括出现次数最多的字符和该字符出现的次数,中间是一个空格。如果有多个字符出现的次数相同且最多,那么输出ASCII码最小的那一个字符。
样例1:
Sample Input: abbcccd
Sample Output: c 3
样例2:
Sample Input: aabbbcccddd
Sample Output: b 3
邮箱是877075206@qq.com,发到哪都可以,谢谢了 展开
输入数据:一个由a-z 26个字符组成的字符串,只考虑小写的情况。
输出要求:包括出现次数最多的字符和该字符出现的次数,中间是一个空格。如果有多个字符出现的次数相同且最多,那么输出ASCII码最小的那一个字符。
样例1:
Sample Input: abbcccd
Sample Output: c 3
样例2:
Sample Input: aabbbcccddd
Sample Output: b 3
邮箱是877075206@qq.com,发到哪都可以,谢谢了 展开
1个回答
展开全部
不多说了。上图:
aabbbcccddd
b 3
请按任意键继续. . .
正确的代码:
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
int main()
{
int a[26]={0};
char s[100];
int max=0,index=-1,i;
scanf("%s",&s);
for(i=0;i<strlen(s);i++)
{
a[s[i]-'a']++;
}
for(i=0;i<26;i++)
{
if(a[i]>max)
{
max=a[i];
index=i;
}
}
printf("%c %d\n",'a'+index,max);
system("pause");
}
GoodLuck!
aabbbcccddd
b 3
请按任意键继续. . .
正确的代码:
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
int main()
{
int a[26]={0};
char s[100];
int max=0,index=-1,i;
scanf("%s",&s);
for(i=0;i<strlen(s);i++)
{
a[s[i]-'a']++;
}
for(i=0;i<26;i++)
{
if(a[i]>max)
{
max=a[i];
index=i;
}
}
printf("%c %d\n",'a'+index,max);
system("pause");
}
GoodLuck!
追问
谢谢了,可是能不能帮忙改简单点,我们没学这个。。。
追答
已经尽力了,基本是最简介的思路了:
说一下思路:
输入字符串,且定义一个数组存放26个元素出现的次数
从头到尾扫描一遍,如果是a就把a出现的次数加一放到a[0]中,同理z就放到a[25]中。
然后对这个统计次数的数组扫描找出出现次数最多的那个字符,并记录其下标
这个算法写的有点巧。好好理解吧。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询