题目
思路
将输出图形分为上下两部分输出;上部分用一个for循环(我写的程序将中间一行算在了上部分里)。下部分用一个for循环。每个for循环中再嵌套两个for循环分别输出每行【星号前面的空格】和【星号+空格】,每部分两个嵌套循环结束后再打一个回车。
代码
#include <stdio.h>
void main()
{
int n;
scanf("%d",&n);
for(int i = 1; i<=n/2+1; i++)
{
for(int j = i; j<=n/2; j++)
{
printf(" ");
}
for(int k = 1; k<=2*i-1;k++)
{
printf("* ");
}
printf("\n");
}
for(int i = 1; i<=n/2; i++)
{
for(int j = 1; j<=i; j++)
{
printf(" ");
}
for(int k = 1; k<=n-2-2*(i-1); k++)
{
printf("* ");
}
printf("\n");
}
}