夏令营里还有国外的留学生,在日常相处中,小明需要和留学生用英文对话,他想测试平时对话中,一句英文句子里字母出现的次数。
给定一行英文句子字符串(可能包含空格与其他字符),求出其中各个英文字符的出现次数(忽略大小写),并进行直方图输出。
1行,1句可能包含空格与其他字符的英文句子字符串
第1部分:若干行,为按照字母顺序统计的出现次数(若某一单词从未出现则无需显示0),格式为字母: 数字(注意为英文冒号与空格)
第2部分:若干行,为上述统计结果的直方图(同样的若某一单词从未出现则无需显示),每两列之间用空格隔开
注意第1、2部分之间直接相接,无需多余的空行
Youth is not a time of life; it is a state of mind.
A: 3
D: 1
E: 3
F: 3
H: 1
I: 6
L: 1
M: 2
N: 2
O: 4
S: 3
T: 6
U: 1
Y: 1
然后是一个星号和字母的条形统计图
打不出来
我的代码
#include<bits/stdc++.h>
using namespace std;
int main(){
int max=0,sum=0,t=0;
char a[20000];
cin.getline(a,20000);
int b[26],c[26],d[26];
for(int i=0;i<26;i++)
{
b[i]=0;
c[i]=0;
}
int len=strlen(a);
for(int i=0;i<len;i++)
{
if((a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z'))
{
int x=a[i]-97;
b[x]++;
int y=a[i]-65;
c[y]++;
}
}
for(int i=0;i<26;i++)
{
d[i]=b[i]+c[i];
}
for(int i=0;i<26;i++)
{
if(d[i])
{
cout<<char(i+97)<<": "<<d[i]<<endl;
sum++;
}
}
return 0;
}
不知道怎么输出条形统计图 求dalao帮助