求填个空格缩进,好难啊!

能输出直角三角形的莱布尼茨三角形,就是搞不好金字塔型的,求帮忙填个空格缩进
#include <stdio.h>
int a(int m,int n)
{
int r;
if(n==1||n==m)
{
r=1;
}
else r=a(m-1,n-1)+a(m-1,n);
return r;
}
int main()
{
int b,o,r,m=1,n=1,i,j;
printf("请输入你需要的三角形大小(行数)");
scanf("%d",&o);
b=o*(o+1)/2;

while(b--)
{  
    r=a(m,n);
    
    printf("1/%d\t",r*m);
    if(n==m)
    {
        m++;
        n=1;
        printf("\n");
    }
    else
    {
        n++;
    }
}

return 0;

}

img

供参考:

#include <stdio.h>
int a(int m, int n)
{
    int r;
    if (n == 1 || n == m)
    {
        r = 1;
    }
    else r = a(m - 1, n - 1) + a(m - 1, n);
    return r;
}
void print_space(int L, int n, int m)
{
    int i;
    if (n == 1) {
        i = m;
        while (i <= L) {
            printf("%6c", 32);
            i++;
        }
    }
    else
        printf("%6c", 32);
}
int main()
{
    int b, o, r, m = 1, n = 1, i, j;
    printf("请输入你需要的三角形大小(行数)");
    scanf("%d", &o);
    b = o * (o + 1) / 2;
    while (b--)
    {
        r = a(m, n);
        print_space(o, n, m);
        printf("1/%-4d", r * m);
        if (n == m)
        {
            m++;
            n = 1;
            printf("\n\n");
        }
        else
        {
            n++;
        }
    }
    return 0;
}

1,算出三角形的高
2,计算最底下一层的字符总长度L0(分式间用固定长度的的空格数)
3,先把要输出的那一行的分式先合成一个字符串,并计算长度Lc,计算 例:第1行"1/1",第二行"1/2 1/2"
4,要输出行字符串前面补空格,空格数=(L0-Lc)/2;
5,然后一行一行输出就好了