乘法表输出的数字没有对齐,想知道有没有什么办法

//输出数字没有对齐怎么办
#include
int main()
{
    int i = 1, j = 1;
    for (i = 1; i <= 9; i++)
    {
        printf("%d   ", i);

    }
    printf("\n\n");

    for (i = 1; i <= 9; i++)
    {
        for (j = 1; j <= 9; j++)
        {
            printf("%d   ", i * j);
        }
        printf("\n");

    }


    for (i = 1; i <= 9; i++)
    {
        printf("%d   ", i);
    }
    printf("\n\n");

    for (i = 1; i <= 9; i++)
    {
        for (j = 1; j <= 9; j++)
        {
            if (i >= j)
                printf("%d   ", i * j);
        }
        printf("\n");

    }
    for (i = 1; i <= 9; i++)
    {
        printf("%d   ", i);
    }
    printf("\n\n");
    for (int i = 1; i < 10; i++)
    {
        for (int j = 1; j < i; j++)
        {
            printf("     ");
        }
        for (int j = i; j < 10; j++)
        {
            printf("%d   ", i * j);
        }
        printf("\n");
    }

}

img

不要用空格对齐,改为%3d这样对齐


int a = 0;
    int b = 0;
    for (b=1;b<=9;b++)
    {
        for (a=1;a<=b;a++)
        {
            printf("%d*%d=%-2d ", a, b, a * b);
        }
        printf("\n");
    }