这里主要是找到什么时候打印空格,什么时候打印符号
我们可以给每个位置标上一个坐标,然后找出打印空格要满足的条件
例如第一行第二个位置是(1,2)
就可以很快打印出来了
#include <stdio.h>
int main()
{
int j=0;
//打印最多的一行是多少
int max=13;
//计算中间一行上面的三角有多少行 同下面的三角
int n=(max-1)/2;
int i=0;
//打印上三角
for(i=1;i<=n;i++)
{
for(j=1;j<=max;j++)
{
//找到行数与空格位置之间的关系,满足该关系则打印空格
if(j+i<=7)
printf(" ");
else if(j+i>=(9+2*(i-1)))
printf(" ");
//不是空格的位置打印符号*
else
printf("*");
}
printf("\n");
}
//打印中间一行
for(i=1;i<=max;i++)
{
printf("%c",a);
}
printf("\n");
//打印下面的倒三角,方法与打印上三角一致
for(i=8;i<=13;i++)
{
for(j=1;j<=max;j++)
{
if(i+j<=(9+2*(i-8)))
printf(" ");
else if(i+j>=21)
printf(" ");
else
printf("*");
}
printf("\n");
}
return 0;
}