题目描述
写一个程序从输入文件中去读取四行大写字母(全都是大写的,每行不超过 100100 个字符),然后用柱状图输出每个字符在输入文件中出现的次数。严格地按照输出样例来安排你的输出格式。
输入格式
四行字符,由大写字母组成,每行不超过 100100 个字符
输出格式
由若干行组成,前几行由空格和星号组成,最后一行则是由空格和字母组成的。在任何一行末尾不要打印不需要的多余空格。不要打印任何空行。
输入输出样例
输入 #1
THE QUICK BROWN FOX JUMPED OVER THE LAZY DOG. THIS IS AN EXAMPLE TO TEST FOR YOUR HISTOGRAM PROGRAM. HELLO!
输出 #1
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 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<vector>
#include<string>
using namespace std;
int main()
{
vector<int>num;
num.resize(26, 0);
vector<char>word = { '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'};
string s;
string S= "";
for (int i = 0; i < 4; i++) {
getline(cin, s);
S += s;
}
for (int i = 0; i < S.size(); i++) {
for (int j = 0; j < 26; j++) {
if (S[i] == word[j]) {
num[j]++;
break;
}
}
}
int Max = num[0];
for (int i = 1; i < 26; i++) {
if (num[i] >= Max) {
Max = num[i];
}
}
int temp = Max;
for (int i = 0; i < Max; i++) {
for (int j = 0; j < 26; j++) {
if (num[j] >= temp) {
if (j != 25) {
cout << "*" << " ";
}
else {
cout << "*";
}
}
else {
cout << " " << " ";
}
}
cout << endl;
temp--;
}
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";
return 0;
}