题解 | #箭形图案#
箭形图案
http://www.nowcoder.com/practice/a6d1081e0c9a42f19e42ed6cd91556c1
/* n=3,总共打印2*n+1行,总共有2*n+1列
*
**
***
****
***
**
*
*/
#include<stdio.h>
int main(void)
{
int n;
while((scanf("%d",&n))!=EOF)//多组输入
{
for(int i=1;i<=n;i++)//打印上半部分,中间*号以上部分
{
for(int j=n;j>=i;j--)//打印第一行前置空格,每次打印两个空格,每行的空格个数跟行数有关,第一行打印次两个空格,依次递减
printf(" ");
for(int k=1;k<=i;k++)//逐行打印*号,打印的个数与行数一样
printf("*");
printf("\n");
}
for(int i=0;i<=n;i++)//因为后半部分多了一行,所以定义中间一行为0行开始
{
for(int j=n-i;j<n;j++)//后半部分的前置空格打印,打印的空格从0逐步加1
printf(" ");
for(int k=0;k<=n-i;k++)//打印的*号逐行减少
printf("*");
printf("\n");
}
}
return 0;
}