求助!!c语言
查看原帖
求助!!c语言
1152016
Spirit_ZeroHeart楼主2023/11/29 16:14

只能拿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; 
}
2023/11/29 16:14
加载中...