#include <stdio.h>
/*输出由星号组成的菱形函数，n为上三角行数。k=1实心，k=2空心*/
void draw(int n,int k)
{
	int i,j;
/*上三角一共 n 行*/
	for(i=1;i<=n;i++)
	{
        /*打印空间为n 行 2n-1列*/
		for(j=1;j<=2*n-1;j++)
		{
			/*菱形外为空格。如果为空心，菱形内为空格*/
			if((j<n-i+1 || j>n+i-1) || (k==0 && j>n-i+1 && j<n+i-1))
			printf(" ");
            else
printf("*");
		}
		printf("\n");
	}
	
	for(i=n-1;i>=1;i--)
	{
	    for(j=1;j<=2*n-1;j++)
		{
			if((j<n-i+1 || j>n+i-1) || (k==0 && j>n-i+1 && j<n+i-1))
			printf(" ");
            else
printf("*");
		}
		printf("\n");
	}
}

main()
{
	int n,k;
	printf("\n请输入菱形的上三角行数:");
	scanf("%d",&n);
	printf("\n请输入空心(0) or 实心(1):");
	scanf("%d",&k);
	if(k!=0)
	    k=1;
    draw(n,k);
}
