如图所示,通过观察我们可以看出此图形打印*的规律,我们可以把图形拆分为一个正三角与一个倒三角的组合,然后再根据每一行所需要打印的空格数量与*的数量进行输出,通过i,j两个循环变量分别控制行数以及需要打印的图案即可。
程序部分:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int i = 0;
int j = 0;
int line = 0;
printf("请输入要打印的正三角的行数:");
scanf("%d",&line);//要打印的正三角的行数
//正三角
for (i = 1; i <= line; i++) //控制行数
{
//先打印空格
for (j = 1; j <= (line - i); j++) //正三角中需要打印空格的行数为正三角的行数-1(最后一行不用打空格)
{
printf(" ");
}
//再打印*
for (j = 1; j <= 2 * i - 1; j++)
{
printf("*");
}
printf("\n");
}
//倒三角
for (i = 1; i < line; i++) //控制行数
{
//先打印空格
for (j = 1; j <= i; j++)
{
printf(" ");
}
for (j = 1; j <= 2 * (line - i)-1; j++)
//再打印*
{
printf("*");
}
printf("\n");
}
system("pause");
return 0;
}