C语言编程题目 给一个字符串,请找出出现次数最多的大写英文字母.

问题描述:

C语言编程题目 给一个字符串,请找出出现次数最多的大写英文字母.
输入
第一行是一个整数N,表示样例的个数.
以后的每行一个字符串,串长不超过2000,且只含大写英文字母.
输出
每个样例输出一行,先是出现次数最多的大写英文字母,然后是它的出现次数.如果存在多个大写英文字母符合题意,只要输出最小的那个.
Sample Input
2
ABCDEFGHIJKLMNOPQRSTUVWXYZ
AAAAABBBB
Sample Output
A 1
A 5
1个回答 分类:综合 2014-12-02

问题解答:

我来补答
思路如下
先定义一个数组s[26],下标0-25 分别对应A-Z
遍历整个字符串,统计每个字符出现的次数
char ch ;
char s[25];
memset(s,0,sizeof(s));//清空s数组
do 
{
    char ch = getchar();
    s[ch-'A']++;  //减去A的ASCII码之后恰好为0,对应数组下标
}
while(ch!='\0');

遍历一次找到s数组中的最大值,就是出现的最大次数 设为m

int count = 0;
int min_index = 0;
for(i=0;i<25;++i)
{
    if(count < s[i])  
    {
        count = s[i];
        min_index = i; //同样次数的最小字母对应下标
     }
}
char min_char = min_index + 'A';
putchar(min_char);为答案
自己组织一下编程实现吧,很简单的
希望对你有帮助!
再问: 恩,谢谢,我自己想想。有问题再问你,请指教。
再答: 请记得采纳哦~~~~
 
 
展开全文阅读
剩余:2000