咱们输出的是一个13行的菱形,可以分成两部分,第一部分7行星星逐渐增多的,第二部分6行星星逐渐减少,所以代码也可以分成两部分。第一部分是星星最多13个 每次增加两个星星 减少一个空格 ,第二部分是星星最多11个,每次减少两个星星 增加一个空格 所以根据这样规律就可以写出代码
#include <stdio.h>
int main()
{
int a, b, c;
for (a = 1; a <= 7; a++) //第一部分是七行
{
for (b = 1; b <= 7 - a; b++) //输出空格,最多是六个空格然后每行空格减少一个
printf(" ");
for (c = 1; c <= 2 * a - 1; c++) //输出星星 最少是一个星星,每次增加两个
printf("*");
printf("\n"); //上面两个for输出的是在一行的 所以输出结束后要换行
}
for (a = 1; a <= 6; a++) //第二部分是6行
{
for (b = 1; b <= a; b++) //同上 每次增加一个空格
printf(" ");
for (c = 1; c <= 13 - 2 * a; c++) //同上 每次减少两个星星
printf("*");
printf("\n"); //换行
}
return 0;
}