我看了样例明明一摸一样啊,为什😭
查看原帖
我看了样例明明一摸一样啊,为什😭
1587307
_Yamada_Ryo楼主2024/11/28 21:12
#include <stdio.h>
#include <string.h>
#include <ctype.h>
void find_max(int arr[], int size, int *max_value)
{
    for (int i = 1; i < size; i++)
    {
        if (arr[i] != 0)
        {
            if (arr[i] > *max_value)
            {
                *max_value = arr[i];
            }
        }
        else
        {
            continue;
        }
    }
}
int main()
{
    char str[150] = {'\0'}, result[1000][30] = {'\0'};
    int cnt[30] = {0}, max = 0;
    for (int k = 0; k < 4; k++)
    {
        fgets(str, 150, stdin);
        for (int i = 0; str[i] != '\0'; i++)
        {
            if (isalpha(str[i]))
            {
                cnt[str[i] - 'A']++;
            }
        }
    }
    find_max(cnt, 26, &max);
    for (int i = 0; i < 26; i++)
    {
        for (int j = 0; j < cnt[i]; j++)
        {
            result[j][i] = '*';
        }
    }
    for (int i = 0; i <= max; i++)
    {
        for (int j = 25; j >= 0; j--)
        {
            if (result[i][j] == '*')
            {
                for (int k = 0; k < j; k++)
                {
                    if (result[i][k] != '*')
                    {
                        result[i][k] = ' ';
                    }
                }
            }
        }
    }
    for (int i = max; i >= 0; i--)
    {
        for (int j = 0; result[i][j] != '\0'; j++)
        {
            if (j > 0)
            {
                printf(" ");
            }
            printf("%c", result[i][j]);
        }
        printf("\n");
    }
    for (int i = 0; i < 26; i++)
    {
        if (i > 0)
        {
            printf(" ");
        }
        printf("%c", 'A' + i);
    }
    return 0;
}
2024/11/28 21:12
加载中...