昨天是5.20,上课也正好是讲循环,顺手教学员做了个爱心,也算是程序员的浪漫吧。
上述图形使用循环输出需要做两个循环,也就是说把图形拆分成上半部分和下半部分。
上半部分的话,首先需要考虑空格,然后是*号,接着还是空格,然后又是*号。
虽然只有两行,但是也是存在循环规律的。
下半部分的话更简单了就是个倒三角形。
上半部分规则:
行 空格 星号 空格 星号
1 2 3 3 3
2 1 5 1 5
i 3-i 2i+1 5-2i 2i+1
下半部分规则
行 空格 星号
1 0 13
2 2 9
3 4 5
4 6 1
i 2i-2 17-4i
这样我们的循环条件就出来了
实现的代码如下:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
//上半部分
for (int i = 1; i <= 2; i++)//层数 每一次换行
{
for (int j = 1; j <= 3 - i; j++)//空格
{
putchar(' ');
}
for (int k = 1; k <= 2 * i + 1; k++) // *
{
putchar('*');
}
for (int b = 1; b <= 5 - 2 * i; b++)//空格
{
putchar(' ');
}
for (int k = 1; k <= 2 * i + 1; k++) // *
{
putchar('*');
}
printf("\n");
}
//下半部分
for (int i = 1; i <= 4; i++)//层数
{
for (int j = 1; j <= 2 * i - 2; j++)//空格
{
putchar(' ');
}
for (int k = 1; k <= 17 - 4 * i ; k++)// *
{
putchar('*');
}
printf("\n");
}
getchar();
}
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!