//用二维数组,将字母排在最下面,一旦多了一个相应的字母就向上加一个*
#include<stdio.h>
#include<string.h>
int main(){
char snt[4][101];
for(int i=0;i<4;i++){
scanf("%s",snt[i]);
}
int cnt[26]={0};
for(int i=0;i<4;i++){
for(int j=0;j<101;j++){
for(char sign='A';sign<='Z';sign++){
if(snt[i][j]==sign){
cnt[sign-65]++;
}
}
}
}
int max=0;
for(int i=0;i<=25;i++){
if(max<cnt[i]){
max=cnt[i];
}
}
char map[max+1][26];
for(int j=0;j<26;j++){
map[max][j]='A'+j;
}
//从上往下进行填充,先进行空格的填充,到了相应的
for(int i=0;i<26;i++){
for(int j=0;j<max;j++){
if(j<max-cnt[i]){
map[j][i]=' ';
}else {
map[j][i]='*';
}
}
}
for(int i=0;i<max;i++){
for(int j=0;j<26;j++){
printf("%c ",map[i][j]);
}
printf("\n");
}
for(int i=0;i<26;i++){
printf("%c ",map[max][i]);
}
return 0;
}
有没有大佬能捞一下