/*
* i=0
*** i=1
***** i=2
******* i=3
***** i=0
*** i=1
* i=2
通过观察可以将图形分为上四行和下三行
上四行:
第一行 三空格 i=0 j=3-0-1(j从0开始)
第二行 两空格 i=1 j=3-1-1(j从0开始)
第三行 一空格 i=2 j=3-2-1(j从0开始)
第四行 无空格 i=2 j=3-3-1(j从0开始)
综上 j=2-i
第一行 1个* i=0 k=2*0+1-1(k从0开始)
第二行 3个* i=1 k=2*1+1-1(k从0开始)
第三行 5个* i=2 k=2*2+1-1(k从0开始)
第四行 7个* i=3 k=2*3+1-1(k从0开始)
综上 k=2*i+1-1
下三行:
空格数 第一行一个令j=0 第二行两个j=1 第三行三个 令j=2 可知j与i的个数相同 则令j=i
*数 第一行为7-2*1 则令k=7-2*1-1=4 (k从0开始)
第二行为7-2*2 则令k=7-2*2-1=2 (同理)
第三行为7-2*3 则令k=7-2*3-1=0 (同理)
归纳总结 :k=7-2*(i+1)-1
*/
#include <stdio.h>
int main()
{
int i,j,k;
for(i=0;i<=3;i++)
{
for(j=0;j<=2-i;j++)
printf(" ");
for(k=0;k<=2*i;k++)
printf("*");
printf("
") ;
/*i=0 j=2 k=0输出三个空格 一个*
i=1 j=1 k=2 输出两个空格 三个*
i=2 j=0 k=4 输出一个空格 五个*
i=3 j=-1 k=6 不输出空格 六个*
*/
}
for(i=0;i<=2;i++)
{
for(j=0;j<=i;j++)
printf(" ");
for(k=0;k<=7-2*(i+1)-1;k++)
printf("*");
printf("
");
}
return 0;
}