题目描述
Johe最近玩起了字符游戏,规则是这样的:读入四行字符串,其中的字母都是大写的,Johe想打印一个柱状图显示每个大写字母的频率。你能帮助他吗?
输入
输入文件共有4行:每行为一串字符,不超过100个字符。
输出
与样例的格式保持严格一致。
样例输入
THE QUICK BROWN FOX JUMPED OVER THE LAZY DOG. THIS IS AN EXAMPLE TO TEST FOR YOUR HISTOGRAM PROGRAM. HELLO!
样例输出
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 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<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
char a[4][100]; //用于存放输入的4行字符串
int b[26],t,i,j,maxn=0;
int main()
{
for (i=0;i<4;i++)
{
gets(a[i]);
}
memset(b,0,sizeof(b));
for (i=0;i<4;i++)
{
for (j=0;j<=strlen(a[i])-1;j++)
{
if (a[i][j]>='A' &&a[i][j]<='Z')
{
t=a[i][j]-'A';
b[t]++;
}
}
}
for (i=0;i<26;i++)
{
if (b[i]>maxn) maxn=b[i];
}
for (i=maxn;i>=1;i--)
{
for (j=0;j<26;j++)
{
if (b[j]>=i) printf("* ");
else printf(" ");
}
printf("\n");
}
printf("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");
return 0;
}
样例输出: