打印菱形

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

对于上三角形,假设最多一行有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");    }}
©著作权归作者所有:来自51CTO博客作者zzy613的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 编程题2:一个整数中奇数位和偶数位的打印
  2. 编程题三:使用指针来打印数组内容
  3. Python少有人走过的坑
  4. 求求你,别用 print 来 debug 了
  5. 2021-04-02:给定一个正方形或者长方形矩阵matrix,实现zigzag打印。
  6. springboot 打印sql日志
  7. JAVA环境的CPU高负载问题排查小计
  8. 一次打印机端口错误引起不打印的处理过程
  9. 原创 | 打印机网络安全问题概述

随机推荐

  1. 初次见面,请多关注
  2. 写独立个人博客,还有机会吗?
  3. 【前端词典】如何向老板解释反向代理
  4. 25条很棒的Python一行代码,建议收藏!
  5. Ansible 之 配置文件解析
  6. 【前端词典】学习 Vue 源码的必要知识储
  7. 搭建个人博客,我遇到哪些棘手的问题?
  8. 常用排序算法复杂度,稳定性相关(记忆贴)
  9. 美团面试官:生成订单后一段时间不支付订单
  10. 【前端词典】进阶必备的网络基础