想请教一下要怎么改才能实现预期输出

问题遇到的现象和发生背景

当输入This is a pen. That is a pencil.怎么改才能实现预期结果
不知道应该怎么样让百分号向右边对齐,希望有人解答一下

遇到的现象和发生背景,请写出第一个错误信息
用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
#include
#include

int main()
{
    int count(int length, int sum, char* p);
    void printstar(float N);
    char str[100], let[26];
    int i, j, sum, length = 0, star;
    float N;
    gets_s(str);
    for (i = 0; i < strlen(str); i++) {
        if (str[i] >= 'a' && str[i] <= 'z') {
            str[i] -= 32;
        }
        if (str[i] >= 'A' && str[i] <= 'Z') {
            length++;
        }
    }
    for (i = 0; i < 26; i++) {
        let[i] = 'A' + i;
    }
    for (i = 0; i < 26; i++) {
        sum = 0;
        for (j = 0; j < strlen(str); j++) {
            if (str[j] >= 'A' && str[j] <= 'Z') {
                if (str[j] == let[i]) {
                    sum++;
                }
            }
        }
        if (sum != 0) {
            N = count(length, sum, &let[i]);
            printstar(N);
        }
    }
}
int count(int length, int sum, char* p)
{
    int n;
    float N;
    N = sum * 1.0 / length * 100;
    printf("%c:   %d  %.1f%%",*p, sum, N);
    return N;
}
void printstar(float N) 
{
    int n,star;
    n = N * 10;
    n %= 10;
    if (n >= 5 && n < 10) {
        star = N + 1;
    }
    else {
        star = N;
    }
    while (star!=0) {
        printf("*");
        star--;
    }
    printf("\n");
}

运行结果及详细报错内容

img

我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%
我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”

printf("%c: %d %6.1f%%",*p, sum, N);

img

printf("%c: %d %5.1f%%",*p, sum, N);