只能拿20分,但我下载测试了第一个测试点是正确的(至少我看不出来错误)
#include<string.h>
void work(int a[],char c)
{
switch(c)
{
case 'A':a[0]++;break;
case 'B':a[1]++;break;
case 'C':a[2]++;break;
case 'D':a[3]++;break;
case 'E':a[4]++;break;
case 'F':a[5]++;break;
case 'G':a[6]++;break;
case 'H':a[7]++;break;
case 'I':a[8]++;break;
case 'J':a[9]++;break;
case 'K':a[10]++;break;
case 'L':a[11]++;break;
case 'M':a[12]++;break;
case 'N':a[13]++;break;
case 'O':a[14]++;break;
case 'P':a[15]++;break;
case 'Q':a[16]++;break;
case 'R':a[17]++;break;
case 'S':a[18]++;break;
case 'T':a[19]++;break;
case 'U':a[20]++;break;
case 'V':a[21]++;break;
case 'W':a[22]++;break;
case 'X':a[23]++;break;
case 'Y':a[24]++;break;
case 'Z':a[25]++;break;
}
}
int findmax(int a[])
{
int max=a[0];
for(int i=1;i<26;i++)
{
if(a[i]>max)
max=a[i];
}
return max;
}
int findthat(int a[],int n)
{
int that=0;
for(int i=0;i<26;i++)
{
if(a[i]>=n)
that=i;
}
return that;
}
int main()
{
int a[26]={0};
for(int i=1;i<=4;i++)
{
char s[150]={'\0'};
fgets(s,120,stdin);
int j=0;
while(s[j]!='\r'&&s[j]!='\n')
work(a,s[j++]);
}
for(int i=findmax(a);i>0;i--)
{
for(int j=0;j<findthat(a,i);j++)
{
if(a[j]>=i)
printf("* ");
else
printf(" ");
}
printf("*\n");
}
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;
}