//POJ 2136
//从输入文件读取四行大写字母组成的文本输入
//并输出一个垂直柱状图显示
//画统计图是自上而下,自左而右。
//自上而下指的是按频率递减顺序处理每一行
//自左而右指的是按序数递增处理当前行的每一个字母
#include<iostream>
#include<stdio.h>
#include<cstring>
using namespace std;
int main()
{
int cnt[26]={0}, maxc=0,length=0;
char c[72];
for(int i=0;i<4;++i)
{
gets(c);
length=strlen(c);
for(int j=0; j<length;++j) //统计字母的个数
{
switch(c[j])
{
case 'A':++cnt[0];continue;
case 'B':++cnt[1];continue;
case 'C':++cnt[2];continue;
case 'D':++cnt[3];continue;
case 'E':++cnt[4];continue;
case 'F':++cnt[5];continue;
case 'G':++cnt[6];continue;
case 'H':++cnt[7];continue;
case 'I':++cnt[8];continue;
case 'J':++cnt[9];continue;
case 'K':++cnt[10];continue;
case 'L':++cnt[11];continue;
case 'M':++cnt[12];continue;
case 'N':++cnt[13];continue;
case 'O':++cnt[14];continue;
case 'P':++cnt[15];continue;
case 'Q':++cnt[16];continue;
case 'R':++cnt[17];continue;
case 'S':++cnt[18];continue;
case 'T':++cnt[19];continue;
case 'U':++cnt[20];continue;
case 'V':++cnt[21];continue;
case 'W':++cnt[22];continue;
case 'X':++cnt[23];continue;
case 'Y':++cnt[24];continue;
case 'Z':++cnt[25];continue;
default:break;
}
}
}
maxc=cnt[0];
for(int i=1;i<=25;++i) //最高频率
{
if(maxc<cnt[i])
{
maxc=cnt[i];
}
}
cout<<"Max: "<<maxc<<endl;
for(int i=1;i<=maxc;++i) //自上而下
{
for(int j=0;j<26;++j) //自左而右
{
if(cnt[j]>maxc-i)
{
cout<<"* ";
}
else
{
cout<<" ";
}
}
cout<<endl;
}
cout<<"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"<<endl;
return 0;
}
//从输入文件读取四行大写字母组成的文本输入
//并输出一个垂直柱状图显示
//画统计图是自上而下,自左而右。
//自上而下指的是按频率递减顺序处理每一行
//自左而右指的是按序数递增处理当前行的每一个字母
#include<iostream>
#include<stdio.h>
#include<cstring>
using namespace std;
int main()
{
int cnt[26]={0}, maxc=0,length=0;
char c[72];
for(int i=0;i<4;++i)
{
gets(c);
length=strlen(c);
for(int j=0; j<length;++j) //统计字母的个数
{
switch(c[j])
{
case 'A':++cnt[0];continue;
case 'B':++cnt[1];continue;
case 'C':++cnt[2];continue;
case 'D':++cnt[3];continue;
case 'E':++cnt[4];continue;
case 'F':++cnt[5];continue;
case 'G':++cnt[6];continue;
case 'H':++cnt[7];continue;
case 'I':++cnt[8];continue;
case 'J':++cnt[9];continue;
case 'K':++cnt[10];continue;
case 'L':++cnt[11];continue;
case 'M':++cnt[12];continue;
case 'N':++cnt[13];continue;
case 'O':++cnt[14];continue;
case 'P':++cnt[15];continue;
case 'Q':++cnt[16];continue;
case 'R':++cnt[17];continue;
case 'S':++cnt[18];continue;
case 'T':++cnt[19];continue;
case 'U':++cnt[20];continue;
case 'V':++cnt[21];continue;
case 'W':++cnt[22];continue;
case 'X':++cnt[23];continue;
case 'Y':++cnt[24];continue;
case 'Z':++cnt[25];continue;
default:break;
}
}
}
maxc=cnt[0];
for(int i=1;i<=25;++i) //最高频率
{
if(maxc<cnt[i])
{
maxc=cnt[i];
}
}
cout<<"Max: "<<maxc<<endl;
for(int i=1;i<=maxc;++i) //自上而下
{
for(int j=0;j<26;++j) //自左而右
{
if(cnt[j]>maxc-i)
{
cout<<"* ";
}
else
{
cout<<" ";
}
}
cout<<endl;
}
cout<<"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"<<endl;
return 0;
}