要求输出如图所示:
写代码前先分析一下要怎么打印出这个图案,显然这个图案是上下对称的,上半部分的星号数量递增,下半部分的星号数量递减,有规律可循,所以我们可以先打印上半部分,再打印下半部分。再来看图案的每一行,其实是由空格和星号组成的,例如第一行,是3个空格和1个星号。所以我们可以一行一行的打印,每一行用循环分别打印空格和星号,打印完一行以换行转到下一行继续打印,整个过程就完成了。
#include<stdio.h>
void main()
{
int i,j,k;
for(i = 0; i < 4; i++)//在屏幕上打印出上半部分
{
for(j = 0; j < 3 - i; j++)
{
printf(" ");
}
for(k = 0 ; k < 2 * i + 1; k++)
{
printf("*");
}
printf("\n");
}
for(i = 0; i < 3; i++) //在屏幕上打印出下半部分
{
for(j = 0; j <= i; j++)
{
printf(" ");
}
for(k = 0 ; k < 5 - 2 * i; k++)
{
printf("*");
}
printf("\n");
}
}