HDU2708 Vertical Histogram
using namespace std;
#include<iostream>
struct letter{
int num;
char l;
};
int main()
{
char c[4][80];
letter L[26];
while(gets(c[0]))
{
gets(c[1]);
gets(c[2]);
gets(c[3]);
for(int i = 0;i<26;i++)
{
L[i].l = 'A'+i;
L[i].num = 0;
}
for(int i = 0;i<4;i++)
{
for(int j = 0;c[i][j];j++)
{
for(int k = 0;k<26;k++)
{
if(c[i][j] == L[k].l)
L[k].num++;
}
}
}
int maxrow=0,maxline = 0;
for(int i = 0;i<26;i++) // 找出行数
{
if(L[i].num>=maxline)
{
maxline = L[i].num;
}
}
for(int k = 0;k<maxline;k++)
{
for(int i = 0;i<26;i++) //找出最大列
{
if(L[i].num>=maxline-k)
maxrow = i;
}
for(int m = 0;m<=maxrow;m++)
{
if(L[m].num>=maxline-k)
{
cout<<"*";
if(m<maxrow)
cout<<" ";
}
else{
cout<<" ";
if(m<maxrow)
cout<<" ";
}
}
cout<<endl;
}
for(int i = 0;i<26;i++) //输出字母
{
cout<<L[i].l;
if(i<25)
cout<<" ";
}
cout<<endl;
}
return 0 ;
}
刚开始以为数量为0的字母不用输出,后来才发现都需要输出。