【字符串】贝贝的图形

问题 D: 【字符串】贝贝的图形

时间限制: 1 Sec  内存限制: 128 MB
提交: 16  解决: 6
[提交] [状态] [讨论版] [命题人:外部导入]

题目描述

贝贝最近玩起了字符游戏,规则是这样的:读入四行字符串,其中的字母都是大写的,乐乐想打印一个柱状图显示每个大写字母的频率。你能帮助他吗?

输入

 输入共有4行:每行为一串字符,不超过72个字符。

输出

与样例的格式保持严格一致。

样例输入

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.输出的相邻字符间有一个空格。
2.最后一行的26个大写字母每次必须输出。
3.大写字母A所在的第一列前没有空格。

 1 #include <iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<algorithm>
 5 using namespace std;
 6 char s[4][100];
 7 bool isCaps(char ch)
 8 {
 9     if(ch>='A'&&ch<='Z')
10         return true;
11     else
12         return false;
13 }
14 int cnt[26];
15 int main()
16 {
17     for(int i=0;i<4;i++)
18         gets(s[i]);
19     for(int i=0;i<4;i++)
20     {
21         for(int j=0;s[i][j]!='';j++)
22         {
23             if(!isCaps(s[i][j]))    continue;
24             cnt[s[i][j]-'A']++;
25         }
26     }
27     int maxn=-1;
28     for(int i=0;i<26;i++)
29     {
30         maxn=max(maxn,cnt[i]);
31     }
32     for(int i=0;i<maxn;i++)
33     {
34         for(int j=0;j<51;j++)
35         {
36  
37             if(j%2!=0)
38             {
39                 cout<<" ";
40                 continue;
41             }
42             if(i+cnt[j/2]<maxn)
43             {
44                 cout<<" ";
45                 continue;
46             }
47             cout<<"*";
48         }
49             cout<<endl;
50     }
51     for(int i=0;i<51;i++)
52     {
53         if(i%2!=0)  cout<<" ";
54         else
55             cout<<char(i/2+65);
56     }
57     cout<<endl;
58     return 0;
59 }
View Code
如有错误,请指正,感谢!
原文地址:https://www.cnblogs.com/scott527407973/p/9314619.html