如何打印菱形
16lz
2021-04-10
打印菱形
要考虑打印一个菱形,我们首先将菱形分为上下两个三角形,先打印上三角,再打印下三角。
对于上三角形,假设最多一行有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的原创作品,如需转载,请注明出处,否则将追究法律责任
更多相关文章
- 编程题2:一个整数中奇数位和偶数位的打印
- 编程题三:使用指针来打印数组内容
- Python少有人走过的坑
- 求求你,别用 print 来 debug 了
- 2021-04-02:给定一个正方形或者长方形矩阵matrix,实现zigzag打印。
- springboot 打印sql日志
- JAVA环境的CPU高负载问题排查小计
- 一次打印机端口错误引起不打印的处理过程
- 原创 | 打印机网络安全问题概述