使用*来打印一个实体的菱形图案,大多数人会按照打印的内容使用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;
}