用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语言实现纸风车的具体代码,这是我目前想到的方法,希望对大家有帮助,如果大家有更好的方法可以交流交流。希望可爱的你给我点个赞吧!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)