#include<stdio.h>
int main()
{
int a,i,j,k;
while(scanf("%d",&a)!=EOF)//多组输入标配,有输入,scanf()不等于EOF,进入循环
{
for(i=1;i<=a+1;i++)//先正三角输出
{
for(j=1;j<=a-i+1;j++)//空格从上往下看,随行数增加而减小,所以是j<=a-i+1
{
printf(" ");
}
for(k=1;k<=i;k++)//星星从上往下看,随行数增加而增加,所以是k<=i
{
printf("* ");
}
printf("\n");
}//前a+1行
for(i=1;i<=a;i++)//再倒三角输出后a行
{
for(j=1;j<=i;j++)//空格从上往下看,随行数增加而增加,所以是j<=i
{
printf(" ");
}
for(k=1;k<=a-i+1;k++)//星星从上往下看,随行数增加而减小,所以是k<=a-i+1
{
printf("* ");
}
printf("\n");
}
}
return 0;
}
总结:
从上往下看,随行数增加而增加,是<=变化的行数(前提,从1开始)
随行数增加而减小,是<=总行数减去变化的行数加1(前提,从1开始)