#include<stdio.h>
int main()
{
int n;
while(~scanf("%d",&n))
{//将菱形分成两部分 上部是n+1行打印 下部是n行打印
for(int j=1;j<=n+1;j++)
{
for(int i=0;i<=n-j;i++)//for(int i=0;i<=n-j-1;i++)上部分空格都少一个。
printf(" ");/*………………
□□□
□□
□*///可以看出,这是前面几种的题型相结合的。
for(int i=1;i<=j;i++)
printf("* ");
printf("\n");
}
for(int j=0;j<n;j++)//分别对比上、下部分的打印‘ ’与‘* ’的for语句、交叉比对、会发现很像,
/*仔细思考会发现 * 与* 抛开前者被提前处理的□□□不看,会发现打印*实际是一样的,
* * ** 前者以‘* ’为一个单位,而后者以‘*’为一个单位
* * * *** */
{
for(int i=0;i<=j;i++)
printf(" ");/*□
□□
□□□
………………*/
for(int i=j;i<n;i++)
printf("* ");
printf("\n");
}
}
return 0;
}



京公网安备 11010502036488号