1. 题目描述
用C语言在屏幕上输出以下图案:

2. 思路
-  我是先上手,先把上半部分打印出来,然后慢慢再来分析,下面这是我先把整个上半部分打印出来,因为空格不方便看是几个,这里先用&代替空格了 
  
-  然后这里我们开始分析如何让我的空格每次打印减一点,如何让我们的*每次打印多一点 
  
验证下
 
 再把*改了
 
- 发现有点没对应上,我们的空格多打了一个,就是第7行应该是0个空格,我们给控制空格打印的地方多减个1。成功

- 下半部分,和上半部分差距不大,下半部分总共是6行就是我们输入的line-1。

 这样一分析,回过头,发现我们分析上半部分 的时候,就应该把要打印的行数考虑进去
 
3. 代码实现
#define  _CRT_SECURE_NO_WARNINGS 2
#include<stdio.h>
int main()
{
	int line = 0;
	scanf("%d", &line);
	int j = 0;
	int i = 0;
	for (i = 0; i < line; i++) //我们首先需要把行确定下来,最外层给的for循环。
	{
		//先打印空格
	    for(j = 0 ;j <line-i-1 ;j++)
		{
			printf(" ");
		}
		//再打印**
		for (int k = 0; k < 2*i+1; k ++)
		{
			printf("*");
		}
		printf("\n");
	}
	int lineDown = line-1;
	for (i = 0; i < lineDown; i++)
	{
		//先打印空格
		for (j = 0; j  < i+1; j++)
		{
			printf(" ");
		}
		//再打印**
		for (int k = 0; k < 2 * (lineDown-i)-1; k++)
		{
			printf("*");
		}
		printf("\n");
	}
	return 0;
}

 















![[大模型开源]SecGPT 网络安全大模型](https://i-blog.csdnimg.cn/direct/121fd0226f0f48a5bc74c65cebde0b7b.png)



