//关于本题的一些思路:可把整个菱形分为两部分,上面一部分可看作一个输入数字n的一个n+1行三角形,然后下面部分可看成一个倒立的三角形(值得注意的是,在下面三角形的输出时每一行前都会有空格,而经观察不难发现,其实在倒三角形的输出中,倒三角形的第i行前就需输出i个空格,明白这些就不难了),注意不要打错代码

include <stdio.h>

int main()

{

int n, i, j;
while (~scanf("%d", &n))
{
    for (i = 1; i <= n + 1; i++)
    {
        for (j = 1; j <= n + 1 - i; j++)
        {
            printf(" ");
        }
        for (j = 1; j <= i; j++)
        {
            printf("* ");
        }
        printf("\n");
    }
    for (i = 1; i <= n;i++)
    {
        for (j = 1; j <= i;j++)
        {
            printf(" ");
        }
        for (j = n; j >= i; j--)
        {
            printf("* ");
        }
        printf("\n");
    }
}
return 0;

}