站外题求助
  • 板块学术版
  • 楼主Yorg
  • 当前回复1
  • 已保存回复1
  • 发布时间2022/5/25 21:31
  • 上次更新2023/10/28 00:37:37
查看原帖
站外题求助
617130
Yorg楼主2022/5/25 21:31
描述

夏令营里还有国外的留学生,在日常相处中,小明需要和留学生用英文对话,他想测试平时对话中,一句英文句子里字母出现的次数。

给定一行英文句子字符串(可能包含空格与其他字符),求出其中各个英文字符的出现次数(忽略大小写),并进行直方图输出。

输入

1行,1句可能包含空格与其他字符的英文句子字符串

输出

第1部分:若干行,为按照字母顺序统计的出现次数(若某一单词从未出现则无需显示0),格式为字母: 数字(注意为英文冒号与空格)

第2部分:若干行,为上述统计结果的直方图(同样的若某一单词从未出现则无需显示),每两列之间用空格隔开

注意第1、2部分之间直接相接,无需多余的空行

输入样例 1

Youth is not a time of life; it is a state of mind.

输出样例 1

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帮助

2022/5/25 21:31
加载中...