星星塔问题:打印出如下图形

方法1:直接利用printf输入空格和*,打印出星星塔,这里不做讲解。
方法2:利用循环打印出星星塔。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int i = 0;//i用来控制每一行中空格和星号的打印个数
int j = 0;//j用来控制打印行数
int a = 6;//a用来控制上半部分每一行打印的空格个数
int b = 1;//b用来控制下半部分每一行打印的空格个数
//先打印每一行的空格.
//再打印每一行的星号.
for (j=1;j<=7;j++)//一共循环7次,打印前7行.
{
//打印一行中的空格
for (i = 1; i <= a; i++)
{
printf(" ");
}
//打印同一行中的星号
for (i = 1; i <= 2*j - 1; i++)
{
printf("*");
}
a--;//打印完一行准备打印下一行,每一行空格比上一行少一个,所以减一.
printf("\n");//打印完一行,换行打印下一行.
}
//打印完成上半部分
//准备打印下半部分
//上半部分打印的7行包括中间全是星星的一行,所以下半部分打印比上半部分少一行
for (j = 6; j >= 1; j--)
{
//打印一行中的空格
for (i = 1; i <= b; i++)
{
printf(" ");
}
//打印一行中的星号
for (i = 1; i <= 2*j - 1; i++)
{
printf("*");
}
b++;//打印完一行准备打印下一行,每一行空格比前一行多一个,所以加一
printf("\n");//打印完一行,换行打印下一行.
}
return 0;
}版权声明:本文为weixin_57163217原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。