判断一个由a~z这26个字符组成的字符串中哪个字符出现的次数最多。
输入格式:
第1行是测试数据的组数n,每组测试数据占1行,是一个由a-z这26个字符组成的字符串,每组测试数据之间有一个空行,每行数据不超过1000个字符且非空。
输出格式:
n行,每行输出对应一个输入。一行输出包括出现次数最多的字符和该字符出现的次数,中间是一个空格。
如果有多个字符出现的次数相同且最多,那么输出ASCII码最小的那一个字符。
输入样例:
2
abbcccadfadffasdf
输出样例:
c 3
f 4
注意点:
有的时候scanf()语句执行完后,输入的东西出现乱码,可以考虑在scanf()语句后面加上getchar();用于吸收回车字符
解题代码:
#include <stdio.h>
#include <string.h>
int main()
{
int m,i,j,number,max;
char a[10000],b;
scanf("%d",&m);
getchar();
while(m--)
{
a[10000]={};
scanf("%s",a);
getchar();
for(i=0,max=0,b=a[i];a[i]!='\0';i++)
{
for(j=0,number=1;a[j]!='\0';j++)
if(a[i]==a[j]&&j!=i)
number++;
if((number>max)+(number==max&&a[i]<b)>0)
{
b=a[i];
max=number;
}
}
printf("%c %d\n",b,max);
}
return 0;
}