C语言正六边形的打印

编写一个程序,输入一个正整数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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值