用上getline()之后就发现,这道题水啊,还真的得多积累,留着以后看
洛谷:
P1598
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<vector>
#include<set>
#include<map>
#include<queue>
#include<cmath>
using namespace std;
int main()
{
string s;
int num[30];
memset(num, 0, sizeof(num));
for(int i = 1; i <= 4; i ++)
{
getline(cin, s);
for(int i = 0; i < s.size(); i ++)
{
if(s[i] >= 'A' && s[i] <= 'Z')
num[s[i] - 'A' + 1] ++;
}
}
int maxy = 0;
for(int i = 1; i <= 26; i ++)
{
maxy = max(maxy, num[i]);
}
for(int i = maxy; i >= 1; i --)
for(int j = 1; j <= 26; j ++)
{
if(num[j] >= i) putchar('*');
else putchar(' ');
if(j != 26)putchar(' ');
if(j == 26)printf("\n");
}
for(int i = 1; i <= 26; i ++)
{
putchar('A' + i - 1);
if(i != 26)putchar(' ');
}
printf("\n");
return 0;
}