C语言 如何改良 数字菱形

C语言 如何改良这个数字菱形
9以下都正常,但想要输出含两位数行数的菱形

img

img

img

供参考:

#include <stdio.h>
int main()
{
    int a,b,c,n;
    scanf("%d", &n);
    for (a=1;a<=n;a++)
    {
        for (b=n-a;b>=1;b--)
            printf("  ");
        for (c=1;c<=a;c++)
            printf("%4d",a);
        printf("\n");
    }
    for (a=n-1;a>=1;a--)
    {
        for (b=1;b<=n-a;b++)
            printf("  ");
        for (c=a;c>=1;c--)
            printf("%4d",a);
        printf("\n");
    }
    return 0;
}