C语言纸风车的实现

C语言纸风车的实现,第1张

用C语言编程绘制一个纸风车,这个是网易2023春招-通用技术的第一题。


用C语言编程绘制一个纸风车,这个是网易2023春招-通用技术的第一题。

输入描述:

第一行输入一个正整数

输出描述

输出相应的纸风车形状

输入例子1:

3

输出例子1:

* ***
****
*****
 ****
*** *

输入例子2:

4

输出例子2:

*  ****
** * *
* ***
*******
  *** *
 * * **
****  *

输入例子3:

5

输出例子3:

*   *****
**  *  *
* * * *
*  ***
*********
   ***  *
  * * * *
 *  *  **
*****   *

也就是说,大致上是这样的,有四个三角,我就叫他们△1,△2,△3,△4了

 我的思路是分了三部分:

(1)第一部分是第一和第二象限的风车

其中又分了△1,△2两部分,其中每一个△又能分成四部分。

我以△2为例说明一下,其他的和△2思路一致:

△2分为四部分:①*部分  ②空格部分  ③*部分  ④空格部分    且有一定规律。

(2)第二部分是中间的一行

(3)第三部分是第三和第四象限的风车

其中又分了△3,△4两部分,其中每一个△又能分成四部分。

 详细的代码如下:

#include
#include
int main()
{
	int a;
	scanf("%d", &a);
	//scanf_s("%d", &a);
	int b = 2 * a - 1;
	for (int m = 1; m <= b; m++)
	{
		//上面的三角
		if (m <= a - 1)
		{
			//第二象限的三角
			if (m == 1)//第一行前面的三角
			{
				printf("*");
				for (int i = 1; i <= m - 2; i++)
					printf(" ");
			}

			else//其他行
			{
				printf("*");
				for (int i = 1; i <= m - 2; i++)
					printf(" ");
				printf("*");
				for (int i = 1; i <= m-a+1; i++)
					printf(" ");
			}


			for (int j = 1; j <= a - m - 1; j++)
				printf(" ");

			//第一象限的三角
			if (m == 1)
			{
				for (int i = 1; i <= a; i++)
					printf("*");
			}

			else
			{
				printf("*");
				for (int i = 1; i <= a-m-1; i++)
					printf(" ");

				printf("*");
				for (int l = 1; l <= m - 1; l++)
					printf(" ");
			}

			printf("\n");
		}

		//中间的一行
		if (m == a)
		{
			for (int i = 1; i <= b; i++)
				printf("*");
			printf("\n");
		}

		//下面三角
		if (m > a)
		{
			
			//第三象限的三角
			if (m == b)
			{
				for (int i = 1; i <= a; i++)
					printf("*");
			}
		
			else
			{
				for (int i = 1; i <= b-m; i++)
					printf(" ");
				printf("*");
				for (int i = 1; i <= a + m - b-2; i++)
					printf(" ");
				printf("*");
			}


			for (int j = 1; j <= a - m - 1; j++)
				printf(" ");

			//第四象限的三角
			if (m == b)
			{
				for (int i = 1; i <= a-2; i++)
					printf(" ");
				printf("*");
			}

			else
			{
				for (int l = 1; l <= m-a-1; l++)
					printf(" ");
				printf("*");
				for (int i = 1; i <= 2*a-m-2; i++)
					printf(" ");

				printf("*");			
			}
			printf("\n");
		}

	}
	
	//system("pause");
	return 0;
}


总结

以上就是如何C语言实现纸风车的具体代码,这是我目前想到的方法,希望对大家有帮助,如果大家有更好的方法可以交流交流。希望可爱的你给我点个赞吧!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/787558.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-05
下一篇 2022-05-05

发表评论

登录后才能评论

评论列表(0条)

保存