3 abcd bbaa jsdhfjkshdfjksahdfjkhsajkf
a a j
解题思路:
本题的技巧,如下之处在于,可将每个字母出现的次数存在数组中,如下所示:
根据s【1】中所存字母出现次数的大小,即可得到出现次数最多的那个字母。需要注意的是,注意字母和数字之间的转化。并且,对于每个N,都应该将数组初始化为零(memset(s,0,sizeof(s));)。
程序代码:
#include<stdio.h> #include<string.h> int main() { int n,i; int s[26]={0}; char ch; scanf("%d",&n); getchar(); while(n--) { int max=0,t; memset(s,0,sizeof(s)); while(scanf("%c",&ch)&&ch!='\n') { //printf("%d ",ch - 'a'); s[ch-'a']++; } for(i=0;i<26;i++) { if(s[i]>max){ max = s[i]; t = i; } } //printf("max = %d,t = %d\n",max,t); printf("%c\n",t+'a'); } return 0; }
原文:http://blog.csdn.net/yzi_angel/article/details/40832339