您的位置:首页 > 其它

垂直直方图

2018-02-28 09:55 260 查看
描述输入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
#include<iostream>
using namespace std;
int main()
{
 int max=0;
 char words[4][80];
 int num [26]={0};
 for(int i=0;i<4;i++)
 {
    gets(words[i]);
    int A=strlen(words[i]);
 for(int j=0;j<A;j++)
 {
 if(words[i][j]==' ')
 {continue;}
 else{num[words[i][j]-65]++;}
 }
 }
 for(int i=0;i<26;i++)
 {
 if(num[i]>max)
  max=num[i];
 }
 for(int i=max-1;i>=0;i--)
 {
 for(int j=0;j<26;j++)
 {
 if(num[j]>=max)
  cout<<"*"<<" ";
 else
  cout<<" "<<" ";
 }
 max--;
 cout<<endl;
 }
 cout<<"A B C D E F G H I G K L M N O P Q R S T U V W X Y Z";
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C