ZCMU 1126

1126: 第二章:我们都有梦想

Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 520 Solved: 173
[Submit][Status][Web Board]
Description

林静究竟在忙什么?暑假没有回家,现在打电话到他宿舍总是不在,郑微通过他的舍友给他留了自己的电话,也不见他回复。明明上火车的前两天郑微还跟林静通过电话,他在那一头答应得好好的,等她到了广州,他就会带她到处去玩,吃遍广州的小吃,当时郑微没有感觉到丝毫的异样,就连他的笑声也是一如既往地带着她熟悉的宠溺和宽容。
  可是现在郑微没忘记两人的约定,林静却踪影全无。难道是她打错了电话?不可能!那个电话她倒着也能背出来,何况那边接电话的舍友明明也是认得林静的,只是说他不在。
  不在不在,老是不在!还说是个模范好学生,不知道跑到哪鬼混去了!郑微气鼓鼓地想,等到见了面,非把他数落一顿不可。

有点不高兴的郑薇手里拿着一封已经封上了口的信,里面写满了她想对林静说的话,但此时的她小心将信封撕开,想再看一遍写下时的那份甜蜜。

你要做的就是对一篇文章的字母进行统计。 而文章是由好多行字母,空格,标点组成的每行不会超过72个字符,请打印一个统计直方图来统计每个字母出现的次数 (不统计空行,数字,标点)。

Input

输入一份郑薇的甜言蜜语,只含有大小写字符,空格,标点。

Output

打印这一份甜蜜的统计图,具体如样例(最后不要空行)。

Sample Input


Amazing grace! How sweet the sound!
That saved a wretch like me!
I once was lost but now I am found,
Was blind but now I see.

Sample Output

        *                                          
        *                                          
*       *                                          
*       *                             *            
*       *                 * *       * *     *      
*       *       *         * *       * *     *      
*       *       *         * *       * *     *      
*     * *     * *         * *       * * *   *      
* * * * *     * *     * * * *       * * *   *      
* * * * *   * * *     * * * *     * * * *   *      
* * * * * * * * *   * * * * *     * * * * * *     *
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

HINT

出国的林静并没有告诉郑薇任何消息。

提示:Ctrl+z输出,非常模拟的一道模拟题
Code:

#include<stdio.h>
#include<string.h>
int main()
{
    char a[100005];
    int c[100];
    char map[100][100];
    memset(a,'\0',sizeof(a));
    memset(c,0,sizeof(c));
    memset(map,' ',sizeof(map));
    while(scanf("%s",a) != EOF)
    {
        int len = strlen(a);
        for(int i=0; i<len; i++)
        {
            if(a[i] >= 'a' && a[i] <= 'z')
                c[a[i] - 'a'] ++;
            if(a[i] >= 'A' && a[i] <= 'Z')
                c[a[i] - 'A'] ++;
        }
    }
    //for(int i=0;i<26;i++)printf("%d ",c[i]);
    int max=c[0];
    for(int i=1; i<26; i++)
        if(c[i]>max)
            max=c[i];
    // printf("%d",max);
    int f=0;
    for(int j=0; j<51; j+=2)
    {
        for(int i=max-1;;)
        {
            while(c[f]--)
            {
                map[i--][j]='*';
            }
            if(c[f]==-1)
                break;
        }
        f++;
        if(f>26)
            break;
    }
    for(int i = 0; i < max; i++)
    {
        for(int j = 0; j < 51; j++)
            printf("%c",map[i][j]);
        printf("\n");
    }
    for(int i = 0; i<26; i++)
    {
        if(i==0)
            printf("%c",'A'+i);
        else
            printf(" %c",'A'+i);
    }

    return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_44941429/article/details/90795562
今日推荐