全WA代码就贴一起好了。。。
```cpp
#include<cstdio>
#define Max(x,y) ((x)>(y)?(x):(y))
using namespace std;
char s[72], mp[300][26];
int book[26], mx;
int main() {
for(int i=1; i<=4; ++i){
gets(s);
for(int j=0; s[j]!='\0';++j)
book[s[j]-'A']++;
}
for(int i=0; i<26; ++i) mx = Max(book[i],mx),mp[0][i] = 'A' + i;
for(int i=0; i<26; ++i)
for(int j=1; j<=book[i]; ++j)
mp[j][i] = '*';
for(int i=mx; i>=0; --i)
for(int j=0; j<26; ++j)
printf("%c%c",mp[i][j],j==25?'\n':' ');
//for(int i=0; i<26;++i) printf("%d ",book[i]);
return 0;
}
```
by 青衫白叙 @ 2017-09-30 21:52:41
凑个热闹混混眼熟
```cpp
// It is made by XZZ
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
#define rep(a,b,c) for(int a=b;a<=c;a++)
#define drep(a,b,c) for(int a=b;a>=c;a--)
int k[28],lmax[28],rmax[28];
int main(){
char ch;
while(scanf("%c",&ch)==1)if(ch>='A'&&ch<='Z')++k[ch-'A'+1];
rep(i,1,26)lmax[i]=max(lmax[i-1],k[i]);
drep(i,26,1)rmax[i]=max(rmax[i+1],k[i]);
drep(i,lmax[26],1){
rep(j,1,26){
if(k[j]>=i)printf("*");
else if(rmax[j+1]>=i)printf(" ");
if(rmax[j+1]<i)break;
else printf(" ");
}puts("");
}
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;
}
```
by λᴉʍ @ 2017-09-30 22:05:59
@[青衫白叙](/space/show?uid=48991) 您的好像是因为char的初始值为0,然后空值您没输出' ',而是'\0'(�)
by λᴉʍ @ 2017-09-30 22:19:31
这样吗。。。。
by 青衫白叙 @ 2017-09-30 22:20:18
@[XZZ\_\_233](/space/show?uid=23118) 本地打出来可是一点都看不出来啊,,,2333.。。。(其实猜到了)(划掉)。。。
by 青衫白叙 @ 2017-09-30 22:21:31
@[青衫白叙](/space/show?uid=48991) luogu IDE上就是个红点,linux用习惯了,一看就知道是无效字符>\_<
by λᴉʍ @ 2017-09-30 22:24:54
@[XZZ\_\_233](/space/show?uid=23118) 谢谢了。。已经A了
by 青衫白叙 @ 2017-09-30 22:28:39
@[青衫白叙](/space/show?uid=48991) = =
by λᴉʍ @ 2017-09-30 22:28:56
for(int i=0; i<=mx; ++i) for(int j=0; j<26; ++j) if(mp[i][j] == '\0')mp[i][j] = ' ';
by 青衫白叙 @ 2017-09-30 22:28:58
```cpp
for(int i=0; i<=mx; ++i) for(int j=0; j<26; ++j) if(mp[i][j] == '\0')mp[i][j] = ' ';
```
by 青衫白叙 @ 2017-09-30 22:29:20