编写一个程序,输入一个正整数N,在屏幕上用"*"打印以N为边长的正六边形。
【输入形式】
输入一个正整数N。
【输出形式】
屏幕上输出以N为边长的正六边形。
#include<stdio.h>
int main()
{
int L,H,i,j,k,n,f1,o3,e=2,x=0,count=0,w=4,xxx=0;//H:行数,L:边长
scanf("%d", &L);
for (i =1 ; i <= L-1; i++)
{
H = L + i;
}
//打印行,
for (i = 1; i <= H; i++)//!
{
//打印行上的内容,第一行,最后一行
for (j = 1; j <= H + 3; j++)
{
if (j == 1 || j == H)
{
for (k = 1; k <= L - 1; k++)
{
printf(" ");
}
for (n = 1; n <= L; n++)
{
printf("*");
}
xxx++;
if (xxx == 2)
{
goto ccc;
}
}
//第一行和最后一行
//第二行至倒数第二行L-2,
else if (j != 1 && j != H + 3&&count<=L-2)
{
for (f1 = 1; f1 <= L - e;f1++)
{
printf(" ");
}
e += 1;
printf("*");
for (o3 = 1; o3 <= L+x;o3++)
{
printf(" ");
}
x += 2;
printf("*");
count++;
}//下半部分
else
{
for (f1 = 1; f1 <= e - L; f1++)
{
printf(" ");
}
e += 1;
printf("*");
for (o3 = 1; o3 <= L + x - w; o3++)
{
printf(" ");
}
w += 2;
printf("*");
}
printf("\n");
}
}
ccc:
return 0;
}