先看一下图形
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201023112841582.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xhbnlhbjk=,size_16,color_FFFFFF,t_70#pic_center)
是不是看起来超简单?事实上确实是这样,我们先看源码:
#include<stdio.h>
int main()
{
int i, j, n;
printf("请问想构建几行?\n");
scanf_s("%d", &n);
for (i = 1; i <= n; i++)
{
for (j = 1; j <= n + i - 1; j++)
{
if (j <= n - i) printf(" ");
else printf("*");
}
printf("\n");
}
return 0;
}
1. 解析
我们不妨假设行为i,列为j,最大行数为n;
可以简单找到下边规律:
所以就存在了for-for的结构
for (i = 1; i <= n; i++)
{
for (j = 1; j <= n + i - 1; j++)
{
if (j <= n - i) printf(" ");
else printf("*");
}
printf("\n");
}
第一行进行行的计数,第二行进行列的计数(注意这里列的最大数,是空格数+星数),最后再来一个if判断是空格还是星,然后就出现了上边的结果。
最后我们用一张漂亮的图图结束。