第2课 贝贝的图形(vhist)
【问题描述】
贝贝最近玩起了字符游戏,规则是这样的:读入四行字符串,其中的字母都是大写的,乐乐想打印一个柱状图显示每个大写字母的频率。你能帮助他吗?
【输入格式】
输入文件共有4行:每行为一串字符,不超过72个字符。
【输出格式】
与样例的格式保持严格一致。
【输入样例】
THE QUICK BROWN FOX JUMPED OVER THE LAZY DOG.
THIS IS AN EXAMPLE TO TEST FOR YOUR
HISTOGRAM PROGRAM.
HELLO!
【输出样例】
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a[33]={0},m=0; //m值:记录频率最大值
string s;
//模块一:统计频率最高的字母和频率值
for(int i=1;i<=4;i++)
{
getline(cin,s);
int len=s.size();
for(int j=0;j<len;j++)
{
if(s[j]>='A' && s[j]<='Z')
{
a[s[j]-'A']++;
m=max(m,a[s[j]-'A']);
}
}
}
//模块二:输出结果
for(int i=m;i>=1;i--)
{
for(int h=0;h<=25;h++)
{
if(a[h]>=i) cout<<"*";
else
{
cout<<" ";
}
}
cout<<endl;
}
for(char h='A';h<='Z';h++)
{
cout<<h<<' ';
}
return 0;
}