首页 > 其他 > 详细

如何打印菱形

时间:2021-04-10 23:08:14      阅读:29      评论:0      收藏:0      [点我收藏+]
打印菱形

要考虑打印一个菱形,我们首先将菱形分为上下两个三角形,先打印上三角,再打印下三角。

对于上三角形,假设最多一行有13个*,那么我们可以定义一个left(L)=right(R)=最中间位置(6)。

对于上三角形,我们首先要打印7行,因此确定一个for循环:

for (int i = 0; i < 7; i++);//打印 7行

对于每一行我们需要打印13个字符:

for (int j=0;j<13;j++);//从第一个字符打印到第十三个字符

而L和F是我们判断打印*还是空格的一个范围:

if (j >= L && j <= R)
            {
                printf("*");
            }
            else
            {
                printf(" ");
            }

每一行打印完,L都需要向左移一位,R需要向右移一位

打印上三角形:

int main() //打印上三角形
{
    int L = 6;
    int R = 6;
    for (int i = 0; i < 7; i++)
    {
        for (int j=0;j<13;j++)
        {
            if (j >= L && j <= R)
            {
                printf("*");
            }
            else
            {
                printf(" ");
            }
        }
        L--;
        R++;
        printf("\n");
    }//L=-1  R=13上

上三角形打印完毕,L会变成-1,R会变成13,越界了,因此我们首先需要执行一次L++,R--,此时L=0,R=12,再来打印下三角形。

对于下三角形,我们只需要打印6行,且第一行便会在i=1处开始打印*,

因此首先需要执行L++,R--,此时L=1,R=11

    L++;
    R--;
    for (int i = 0 ; i < 6; i++)
    {
        L++;
        R--;
        for (int j = 0; j < 13; j++)
        {
            if (j >= L && j <= R)
            {
                printf("*");
            }
            else
            {
                printf(" ");
            }
        }
        printf("\n");
    }
}

打印完整菱形:

int main() //打印菱形
{
    int L = 6;
    int R = 6;
    for (int i = 0; i < 7; i++)
    {
        for (int j=0;j<13;j++)
        {
            if (j >= L && j <= R)
            {
                printf("*");
            }
            else
            {
                printf(" ");
            }
        }
        L--;
        R++;
        printf("\n");
    }//L=-1  R=13
    L++;
    R--;
    for (int i = 0 ; i < 6; i++)
    {
        L++;
        R--;
        for (int j = 0; j < 13; j++)
        {
            if (j >= L && j <= R)
            {
                printf("*");
            }
            else
            {
                printf(" ");
            }
        }
        printf("\n");
    }
}

如何打印菱形

原文:https://blog.51cto.com/u_15153653/2697869

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!