poj 2742统计字符串数(c)


本文内容已经移至我最新的个人博客,欢迎大家到我的新网站交流学习。 查看文章请点我。






































































































































#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char *argv[])
{
  int n,i,a[26],j;
  char str[1001];//存放字符串
  scanf("%d",&n);
 
  fflush(stdin);//清楚缓冲区的内容
 
  while(n>0){
   memset(a,0,26*sizeof(int));//数组赋初值,很重要。
     n-=1;
      gets(str);//得到字符串
     if(str[0]==0){//如果直接按回车,gets()得到的数组是空的。用str【0】是否是0来判断
        n+=1;//输入回车不算字符串,要让n+1.否则输入数据组数不等于n
        continue; 
          }
      for(i=0;str[i]!='/0';i++){//遍历字符串,对应的数组表示字母的个数
            if(str[i]>='a'&&str[i]<='z')
               a[str[i]-'a']++;
            }
     
      for(i=0;i<25;){//找到最多的 
        for(j=i+1;j<26;j++){
              if(a[i]<a[j]){//用小于号直接就能筛选出相等时ASCII码最小的。
                   i=j;
                   
                   break;
                   }
                   
              if(j==25)
              break;
              }
              if(j==25)
              break;
            }
         
            printf("%c %d/n",i+'a',a[i]);
           
           
           
            }
   
  return 0;
}

你可能感兴趣的:(poj 2742统计字符串数(c))