字符统计2
Time Limit: 1000MS Memory limit: 65536K
题目描述
输入英文句子,输出该句子中除了空格外出现次数最多的字符及其出现的次数。
输入
输入数据包含多个测试实例,每个测试实例是一个长度不超过100的英文句子,占一行。
输出
逐行输出每个句子中出现次数最多的字符及其出现的次数(如果有多个字符的次数相同,只输出ASCII码最小的字符)。
示例输入
I am a student a good programming problem ABCD abcd ABCD abcd
示例输出
a 2 o 4 A 2
分析
比字符统计1难那么一点点 可以建一个a数组 用字母的ASCII码做下标进行计数 这种思想在后面的字符串处理中很常用 如果有多个字符的次数相同,只输出ASCII码最小的字符 如此这个要求就好处理了
代码
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int a[256],i,max,s;
char c[101];
while(gets(c))
{memset(a,0,sizeof(a));s=0;
for(i=0;c[i]!=0;i++)
{if(c[i]!=' ')
{
a[c[i]]++;
}
}
max=a[0];
for(i=0;i<256;i++)
{if(max<a[i])
{max=a[i];
s=i;
}
}
printf("%c %d\n",s,max);
}
return 0;
}