使用循环语句打印菱形梅花阵

使用*来打印一个实体的菱形图案,大多数人会按照打印的内容使用printf直接打印,在这里我推荐一个使用循环语句打印 菱形梅花阵的方法,如图所示,是菱形的图案

可以看到一共有13行,最中间的是第7行,一共有13个*,下一行总比上一行多两个或者少两个*,    所以分步打印菱形,先打印最上面的7行,再打印下面的6行。

     用i控制行数,用j控制每一行的*,每一行最后面的空格不打印,根据行数与该行的*数的关系确定j的取值范围。

代码如下所示,第一个for打印前7行,第二个for打印后6行。

#include<stdio.h>
#include<stdlib.h>
int main()
{
	int i; //循环中的行数
	int k; //每行有的星星数
	int j;//空格数

	for (i = 0; i <= 6; i++)
	{
		for (j = 1; j <= 6 - i; j++)
		{
			printf(" ");
		}
		for (k = 1; k <= 2 * i + 1; k++)
		{
			printf("*");
		}
		printf("\n");
	}

	for (i = 0; i <= 5; i++)
	{
		for (j = 1; j <= i + 1; j++)
		{
			printf(" ");
		}
		for (k = 1; k <= 11 - 2 * i; k++)
		{
			printf("*");
		}
		printf("\n");
	}

	system("pause");
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_41158320/article/details/83746532