题目描述

写一个程序从输入文件中去读取四行大写字母(全都是大写的,每行不超过100个字符),然后用柱状图输出每个字符在输入文件中出现的次数。严格地按照输出样例来安排你的输出格式。

输入格式

四行字符,由大写字母组成,每行不超过100个字符

输出格式

由若干行组成,前几行由空格和星号组成,最后一行则是由空格和字母组成的。在任何一行末尾不要打印不需要的多余空格。不要打印任何空行。

输入输出样例

输入  

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

说明/提示

每行输出后面不允许出现多余的空格。

我们可以建立一个数组,然后用出现次数最多的字符数量控制行,进行打印,就行了,一般文章这种我们都用getline,可以直接打出一串字符串,而cin的输入打不出来完整的含空格的字符串。

具体实现看代码。

#include<bits/stdc++.h>
using namespace std;
string s1,s2,s3,s4;
int maxx,a[30];
char b[110][30];//最后输出的数组。
int main(){getline(cin,s1);getline(cin,s2);getline(cin,s3);getline(cin,s4);//读入数据for(int i=0;i<s1.size();i++){if(s1[i]>='A'&&s1[i]<='Z'){a[s1[i]-'A'+1]++;}}for(int i=0;i<s2.size();i++){if(s2[i]>='A'&&s2[i]<='Z'){a[s2[i]-'A'+1]++;}}for(int i=0;i<s3.size();i++){if(s3[i]>='A'&&s3[i]<='Z'){a[s3[i]-'A'+1]++;}}for(int i=0;i<s4.size();i++){if(s4[i]>='A'&&s4[i]<='Z'){a[s4[i]-'A'+1]++;}}//统计字母for(int i=1;i<=26;i++){maxx=max(maxx,a[i]);}//求最高的高度for(int i=1;i<=26;i++){for(int j=maxx;j>=maxx-a[i]+1;j--){b[j][i]='*';}for(int j=maxx-a[i];j>=1;j-- )b[j][i]=' ';b[maxx+1][i]=i+'A'-1;}for(int i=1;i<=maxx+1;i++){for(int j=1;j<=51;j++){if(j%2==0){cout<<' ';continue;}cout<<b[i][j/2+1];}cout<<endl;//如果听懂,希望留下你的赞}
}

P1598 垂直柱状图(模拟)相关推荐

  1. 洛谷 P1598 垂直柱状图【字符串+模拟】

    P1598 垂直柱状图 题目描述 写一个程序从输入文件中去读取四行大写字母(全都是大写的,每行不超过72个字符),然后用柱状图输出每个字符在输入文件中出现的次数.严格地按照输出样例来安排你的输出格式. ...

  2. P1598 垂直柱状图

    P1598 垂直柱状图 题目描述 写一个程序从输入文件中去读取四行大写字母(全都是大写的,每行不超过100个字符),然后用柱状图输出每个字符在输入文件中出现的次数.严格地按照输出样例来安排你的输出格式 ...

  3. 洛谷 P1598 垂直柱状图(输入带空格的字符串)

    P1598 垂直柱状图 菜鸟生成记(25) 这个题有点水,考察字符串的基本功(哎!就喜欢这考基本功的水题) 这一题涉及到输入带空格的字符串输入和格式化输出; 唉!只从gets死了(C11删除gets, ...

  4. 洛谷 P1598 垂直柱状图【字符串】

    题目描述 写一个程序从输入文件中去读取四行大写字母(全都是大写的,每行不超过72个字符),然后用柱状图输出每个字符在输入文件中出现的次数.严格地按照输出样例来安排你的输出格式. 输入输出格式 输入格式 ...

  5. 【洛谷】P1598 垂直柱状图

    题目地址: https://www.luogu.com.cn/problem/P1598 题目描述: 写一个程序从输入文件中去读取四行大写字母(全都是大写的,每行不超过100100100个字符),然后 ...

  6. P1598 垂直柱状图C++

    题目描述 写一个程序从输入文件中去读取四行大写字母(全都是大写的,每行不超过100个字符),然后用柱状图输出每个字符在输入文件中出现的次数.严格地按照输出样例来安排你的输出格式. 输入格式 四行字符, ...

  7. P1598垂直柱状图

    #include<iostream> #include<cstdio> #include <iomanip> #include<cmath> #incl ...

  8. 字符串——垂直柱状图(洛谷 P1598)

    题目选自洛谷P1598 字符串的题确实够刁钻,有的明明思路很简单,但是写起来就很复杂. 这道题难点在于如何输出"柱状图". 用二维数组来存放每一行的结果再挨个输出吗? 显然这不太行 ...

  9. 计数后打印垂直柱状图(洛谷P1598题题解,Java语言描述)

    前言 这题挺好玩的,打印出来颇有老式MP4播放 ♪Music♪ 的感觉 题目要求 P1598题目链接 分析 这题看着挺爽,问题是怎么实现呢? 我们先是要读进来这四行数据(题干说了就是4行),然后变为c ...

最新文章

  1. xilinx vivado烧录s29gl256p-bpi-x8
  2. 大牛出品:TensorFlow 2.0入门指南
  3. matlab 小练习,matlab初试牛刀__小练习
  4. jvm fastdebug
  5. SpringMVC+Spring3.2+Hibernate4整合实例
  6. e.preventdefault() 别滥用
  7. 大学计算机网络实验2,河南工业大学计算机网络实验报告2
  8. css列表大全,CSS中li列表样式汇总大全,全实例展示
  9. 华为lab-rs-v1-1.5_smart link
  10. .NET后台如何获取前台HMTL控件的值
  11. random是python的内置函数吗_Python 内置函数math,random
  12. 计算机二级java和c哪个难,计算机二级最好考哪个 考试难度怎么样
  13. uniapp ucharts统计图表
  14. 安装脚本实现百度云播放视频加速
  15. 谁先倒(15 分) 划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字。如果谁比划出的数字正好等于两人喊出的数字之和,谁就输了,输家罚一杯酒
  16. 通俗易懂解释raid0和raid5_raid0和raid5区别是什么?
  17. 为什么面试官狂问八股文?我已经被三家公司问到哑口无言……
  18. IntelliJ IDEA 永久破解
  19. chrome表单自动填充默认样式-autofill
  20. C语言 正序分解整数

热门文章

  1. 前端框架及项目面试题库介绍
  2. 怎么修改扫描PDF?扫描件PDF修改编辑教程
  3. 解决“the database principal owns a schema in the database and cannot be dropped“问题
  4. 广西大学计算机考研资料汇总
  5. 关于论文图的排版(origin)
  6. 怎么把PicPick设置成中文版?
  7. css背景图片和背景颜色一起显示
  8. 任正非的忠告:不赚钱的产品就关闭压缩
  9. Python 自动化办公
  10. 界面色彩渐变效果的实现