2871836_tle.cc

来自「做的POJ的一些题目」· CC 代码 · 共 66 行

CC
66
字号
#include<iostream>
using namespace std;
typedef struct
{
      int m;
      int count;  
}node;
node mg[26];
void init()
{
     int i;
     for(i=0;i<26;i++)
     {
       mg[i].m=i;
       mg[i].count=0;
     }    
}
int cmp(const void *a,const void *b)
{
    node *c=(node *)a;
    node *d=(node *)b;
    if(c->count!=d->count)
      return d->count-c->count;
    else
       return c->m-d->m;   
}
int main()
{
    char c;
    int i,j,x=0;
    init();
    while(true)
    {
        c=getchar();
        if(c=='!')
          break;
        if(c<='Z' && c>='A')
           mg[int(c-'A')].count++;          
    }
    qsort(mg,26,sizeof(mg[0]),cmp);
    while(true)
    {
         if(mg[0].count==0)
           break;
         while(x<26 && mg[0].count==mg[x].count)
           x++;
         int t=0;
         for(j=0;j<x;j++)
         {
              for(i=t;i<mg[j].m;i++)
                printf("  ");
              printf("* ");
              mg[j].count--;
              t=mg[j].m+1;   
         }
         printf("\n");
         qsort(mg,26,sizeof(mg[0]),cmp);   
         x=0;        
    }
    for(i=0;i<26;i++)
      printf("%c ",char('A'+i));
    printf("\n");
    system("pause");
    return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?