2800:垂直直方图

描述

输入4行全部由大写字母组成的文本,输出一个垂直直方图,给出每个字符出现的次数。注意:只用输出字符的出现次数,不用输出空白字符,数字或者标点符号的输出次数。

 

输入

输入包括4行由大写字母组成的文本,每行上字符的数目不超过80个。

 

输出

输出包括若干行。其中最后一行给出26个大写英文字母,这些字母之间用空格隔开。前面的几行包括空格和星号,每个字母出现几次,就在这个字母的上方输出一个星号。注意:输出的第一行不能是空行。

 

样例输入

THE QUICK BROWN FOX JUMPED OVER THE LAZY DOG.

THIS IS AN EXAMPLE TO TEST FOR YOUR

HISTOGRAM PROGRAM.

HELLO!

样例输出

                            *

                            *

        *                   *

        *                   *     *   *

        *                   *     *   *

*       *     *             *     *   *

*       *     * *     * *   *     * * *

*       *   * * *     * *   * *   * * * *

*     * * * * * *     * * * * *   * * * *     * *

* * * * * * * * * * * * * * * * * * * * * * * * * *

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
 1 #include<iostream>

 2 using namespace std;

 3 

 4 int main() {

 5     int ch[26] = {};

 6     char a;

 7     while(cin >> a) {

 8         if(isalpha(a))

 9             ch[a-'A']++;

10     }

11     int max=0;

12     for(int i=0; i<26; i++) {

13         if(ch[i]>max)

14             max=ch[i];

15     }

16     for(int i=max; i>0; i--) {

17         for(int j=0; j<26; j++) {

18             if(ch[j]==i) {

19                 cout << "* ";

20                 ch[j]--;

21             }

22             else 

23                 cout << "  ";

24         }

25         cout<< "\n";

26     }

27     cout << "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\n";

28     return 0;

29 }

你可能感兴趣的:(图)