3429:练74.1 垂直直方图
练 74.1 垂直直方图
C++版本 04:垂直直方图
C++版本 04:垂直直方图_输入 44 行全部由大写字母组成的文本,输出一个垂直直方图,给出每个字符出现的次数-CSDN博客
C++代码:
/*
第2课 贝贝的图形(vhist)-2019.11.26
*/
#include <bits/stdc++.h>
using namespace std;
int x;
string s;
int a[30];
int m;
int main( void )
{
/*
int x,y,z;
cout<<x<<endl;
cout<<y<<endl;
cout<<z<<endl;
*/
//freopen("a.in","r",stdin);
//freopen("b.out","w",stdout);
//模块一:统计频率最高的字母和频率值
//m值:记录频率最大值
m=0;
for(int i=1;i<=4;++i)
{
//输入一行
getline(cin,s);
int len=s.size();
for(int j=0;j<=len-1;++j)
{
//如果s[j]是大写字母
if(s[j]>='A' && s[j]<='Z')
{
//统计A-Z字母的个数
//a[0]-a[25]存字母A-Z的个数
a[s[j]-'A']++;
//更新最多的字母
m=max(m,a[s[j]-'A']);
//m=max(m,a[s[j]-65]);
}
}
}
//模块二:输出结果
for(int i=m;i>=1;i--)
{
for(int k=0;k<=25;k++)
{
if( a[k] >= i )
{
cout<<"* ";
}
else
{
//2个空格
cout<<" ";
}
}
cout<<endl;
//cout<<" ";
}
//输出大写字母A至Z
for(char ch='A';ch<='Z';ch++)
{
cout<<ch<<" ";
}
//fclose(stdin);
//fclose(stdout);
return 0;
}
#include <bits/stdc++.h>
using namespace std;
int x,m,a[30],len;
string s;
int main()
{
m=0;
for(int i=1;i<=4;i++){
getline(cin,s);
len=s.size();
for(int i=0;i<len;i++){
if(s[i]>='A'&&s[i]<='Z'){
a[s[i]-'A']++;
m=max(m,a[s[i]-'A']);
}
}
}
for(int i=m;i>=1;i--){
for(int j=0;j<=25;j++){
if(a[j]>=i)cout<<"* ";
else cout<<" ";
}
cout<<endl;
}
for(char ch='A';ch<='Z';ch++)cout<<ch<<" ";
return 0;
}
《信息学奥赛一本通 编程启蒙C++版》3451-3456(5题)
《信息学奥赛一本通 编程启蒙C++版》3456-3460(5题)
《信息学奥赛一本通 编程启蒙C++版》3456-3460(5题)_3460:【例83.4】最大公约数和最小公倍数-CSDN博客
《信息学奥赛一本通 编程启蒙 C++版》 3451-3460(10题)
《信息学奥赛一本通 编程启蒙 C++版》 3451-3460(10题)_3452:【例82.2】 座次问题-CSDN博客
《信息学奥赛一本通 编程启蒙C++版》3461-3465(5题)
《信息学奥赛一本通 编程启蒙C++版》3466-3470(5题)