visual c++ 用*打印一个正六边形

编写一个程序,输入一个正整数N 在屏幕上用*打印以边长为 N的正六边形

#include<stdio.h>
#include<math.h>
#include<string.h>

int main()
{
    int n;
    scanf("%d",&n);
    int i,j,k;
    for(i=0;i<n;i++)
    {
        for(j=0;j<n-i-1;j++)
            printf(" ");
        if(i==0)
        {
            for(k=0;k<n;k++)
                printf("*");
        }
        else
        {
            printf("*");
            for(k=0;k<n+2*i-2;k++)
            {
                printf(" ");
            }
            printf("*");
        }
        printf("\n");
    }
    for(i=n;i<2*n-1;i++)
    {
        for(j=0;j<i-n+1;j++)
            printf(" ");
        if(i==2*n-2)
        {
            for(k=0;k<n;k++)
                printf("*");
        }
        else
        {
            printf("*");
            for(k=0;k<5*n-2*i-6;k++)
            {
                printf(" ");
            }
            printf("*");
        }
        printf("\n");
    }
    return 0;
}