南阳241(字母统计)

初学者,一同探讨;

#include<stdio.h>
#include<string.h>
int main()
{
  int n;
  scanf("%d",&n);  
  while(n--)
  {
    int num[100];
    int b=0,c,i,j,k,t,d=0,max,sum=0;
    char x,str[1010];
    scanf("%s",&str);  
    c=strlen(str);
    for(j=0;j<c-1;j++)//冒泡,对字母排一下序;
    for(i=0;i<c-1-j;i++)
    {
      if(str[i]>str[i+1])
      {x=str[i];str[i]=str[i+1];str[i+1]=x;}
    }
    //puts(str);
    for(i=1;i<=c;i++)//对重复数字进行统计;
    {
      if(str[i]==str[i-1])
      b++;
      else
      {
        num[d++]=b+1;
        b=0;
      }
    }  
    max=num[0];k=0;
    for(i=1;i<d;i++)//找出出现次数最多字母所对应总数的下标;
    {
      if(num[i]>max)
      {
        max=num[i];
        k=i;
      }
    }
    for(i=0;i<d;i++)
    {
      if(i==k)
      break;
      sum+=num[i];//sum会累加到出现次数最多字母前一个出现次数;

    }

    if(sum==0) //注意一下;
    printf("%c ",str[0]);
    else
    printf("%c ",str[sum+1]);
  }
  return 0;
}

 
原文地址:https://www.cnblogs.com/soTired/p/4515672.html