题目描述

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

输入输出格式

输入格式:

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

输出格式:

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

输入输出样例

输入样例#1: 复制

THE QUICK BROWN FOX JUMPED OVER THE LAZY DOG.
THIS IS AN EXAMPLE TO TEST FOR YOUR
HISTOGRAM PROGRAM.
HELLO!
输出样例#1: 复制

                            *
*
* *
* * * *
* * * *
* * * * * *
* * * * * * * * * *
* * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * *
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<cstdio>
#include<bits/stdc++.h>
#include<cstring>
#include<algorithm>
using namespace std;
int cnt[];//定义计数数组
string a;
int main()
{
int i,j,n,maxn=;
//char a[200];
for(i=;i<;i++)
{
getline(cin,a);//gets读入
// n=strlen(a);
for(j=;j<a.length();j++)
if(a[j]>='A'&&a[j]<='Z')
cnt[a[j]-'A']++;//统计字符出现次数
}
for(i=;i<;i++)
maxn=max(maxn,cnt[i]);//最多次数(最高柱状图)
for(i=maxn;i>;i--)
{
for(j=;j<;j++)
if(cnt[j]>=i)
printf("* ");
else
printf(" ");//模拟,是可以输出的就输出*,否则跳过
printf("\n");
}//换行
/*for(i=0;i<26;i++)
printf("%c ",i+'A');//输出a~z*/
for(char i='A';i<'Z';i++)
cout << i << " ";//输出A-Y,后面都有一个空格
cout << "Z";//输出Z,后面没有空格
}

模拟

#include <iostream>
#include <cstring>
#include <map>
using namespace std;
int main()
{
string s;//输入变量
int i,j,len,max=;char k;//len长度,max为最多数(高度)
map<char,int> zm;//定义一个char到int的map变量,存储字母出现个数
for (k='A';k<='Z';k++) zm[k]=;//A~Z分别设初值为0
for (i=;i<;i++)//4行
{
getline (cin,s);//读取一行
len=s.size();///求取长度
for (j=;j<len;j++) zm[s[j]]++;//每个字母个数加一
}
for (k='A';k<='Z';k++) if (max<zm[k]) max=zm[k];//求高度
for (;max;max--)
{
for (k='A';k<='Z';k++) if (max<=zm[k]) cout<<"* ";else cout<<" ";//若该高度该字母达到,则输出* ;否则输出 ;
cout<<endl;//换行
}
for (k='A';k<='Z';k++) cout<<k<<' ';//看各位输出都可复杂,直接这样不就行了吗(从A 到Z )
return ;
}

2

洛谷 P1598 垂直柱状图【字符串】的更多相关文章

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

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

  2. 洛谷—— P1598 垂直柱状图

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

  3. 洛谷 P1598 垂直柱状图

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

  4. (水题)洛谷 - P1598 - 垂直柱状图

    https://www.luogu.org/problemnew/show/P1598 忘记读取后清空数组,也不知道准确的长度. #include<bits/stdc++.h> using ...

  5. 洛谷——P1598 垂直柱状图

    https://www.luogu.org/problem/show?pid=1598 题目描述 写一个程序从输入文件中去读取四行大写字母(全都是大写的,每行不超过72个字符),然后用柱状图输出每个字 ...

  6. Java实现 洛谷 P1598 垂直柱状图

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

  7. 洛谷P1598 垂直柱状图

    模拟题...我自己一直被光标下去上不去怎么模拟困扰,实际上可以直接从高到低,从左到右模拟 我的代码(算法借鉴题解) #include <bits/stdc++.h> using names ...

  8. BZOJ1856或洛谷1641 [SCOI2010]生成字符串

    BZOJ原题链接 洛谷原题链接 可以将\(1\)和\(0\)的个数和看成是\(x\)轴坐标,个数差看成\(y\)轴坐标. 向右上角走,即\(x\)轴坐标\(+1\),\(y\)轴坐标\(+1\),表示 ...

  9. 卡特兰数 洛谷P1641 [SCOI2010]生成字符串

    卡特兰数 参考博客 介绍 卡特兰数为组合数学中的一种特殊数列,用于解决一类特殊问题 设\(f(n)\)为卡特兰数的第n项 其通项公式为 \[f(n)=\frac{2n\choose n}{n+1} \ ...

随机推荐

  1. 大并发量订单处理的 KafKa部署

    大并发量订单处理的 KafKa部署总结 今天要介绍的是消息中间件KafKa,应该说是一个很牛的中间件吧,背靠Apache 与很多有名的中间件搭配起来用效果更好哦 ,为什么不用RabbitMQ,因为公司 ...

  2. 从Oracle到Elasticsearch

    自己写的数据交换工具——从Oracle到Elasticsearch 自己写的数据交换工具——从Oracle到Elasticsearch   先说说需求的背景,由于业务数据都在Oracle数据库中,想要 ...

  3. 【bzoj2957】楼房重建 分块+二分查找

    题目描述 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房.每天,这片工地上的房子拆了又建.建了又拆.他经常无聊地看着窗外发呆,数自己能够看到多少栋房子.为了简化问题,我们考虑这些事件发生在一个二 ...

  4. dp类模板

    1.n串最长公共子序列 #include<cstdio> #include<cstring> #include<algorithm> using namespace ...

  5. [Leetcode] subsets ii 求数组所有的子集

    Given a collection of integers that might contain duplicates, S, return all possible subsets. Note: ...

  6. [Leetcode] first missing positve 缺失的第一个正数

    Given an unsorted integer array, find the first missing positive integer. For example,Given[1,2,0]re ...

  7. readelf用法小记

    By francis_hao    Feb 14,2017 显示ELF文件的信息 用法概述 readelf和objdump类似,不过,readelf会显示更详细的信息,而且独立于BFD库,因此当BFD ...

  8. [模拟赛] StopAllSounds

    Description 小松鼠开心地在树之间跳跃着,突然她停了下来.因为眼前出现了一个 拿着专克超萌小松鼠的法宝----超萌游戏机的游客! 超萌游戏机之所以拥有这个名字,是因为它的屏幕是一个n × 2 ...

  9. 如何取消PPT中的动画效果

    幻灯片放映——>设置放映式——>勾选放映时不加动画 (office2007)

  10. is

    MyType a = null; if (a is MyType) == False