码迷,mamicode.com
首页 > 其他好文 > 详细

2800:垂直直方图

时间:2015-02-15 23:03:31      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:

描述

输入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 }

2800:垂直直方图

标签:

原文地址:http://www.cnblogs.com/liangyongrui/p/4293500.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!