SDUT字符统计2

Description

输入英文句子,输出该句子中除了空格外出现次数最多的字符及其出现的次数。

Input

输入数据包含多个测试实例,每个测试实例是一个长度不超过100的英文句子,占一行。

Output

逐行输出每个句子中出现次数最多的字符及其出现的次数(如果有多个字符的次数相同,只输出ASCII码最小的字符)。

Sample

Input 

I am a student
a good programming problem
ABCD abcd ABCD abcd

Output 

a 2
o 4
A 2

Hint

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include<stdio.h>
//0.定义一个字符数组,一个整型数组
//1.通过cin.getlin多组输入进一个101的字符数组
//2.遍历字符串,字符串中每一个字符,变成ASCALL值,整型数组中,对应的ASCALL值下标位置+1
//3.遍历整型数组,找出最大数组值,记录下标
//4.根据下标,输出max0的字符型,和cnt[max0]
using namespace std;
char str[101];
int cnt[128];
int maxx,max0;
int main()
{
    while(cin.getline(str,101))
    {
        memset(cnt,0,sizeof(cnt));
        for (int i=0; str[i]!='\0'; i++)
        {
            if(str[i]>='A'||str[i]<='z')
            {
                cnt[int(str[i])]++;
            }
        }
        maxx=0;
        max0=0;
        for (int i='A'; i<='z'; i++)
        {

            if (cnt[i]>maxx)
            {
                maxx=cnt[i];
                max0=i;
            }
        }
        printf("%c %d\n",max0,cnt[max0]);
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/m0_52226803/article/details/121021118