我们将菱形分为2个部分,设上部分为top,则下部分为top-1。这样行数就永远是单数,也就可以成为一个菱形。
代码如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int top = 0;//上部行数
int row = 0;//控制换行
int col = 0;//控制列的输出
scanf("%d", &top);
//上部
for (row = 0; row < top; row++)
{
//空格第一行top-1个,后面每一行减1个
for (col = 0; col < top - 1 - row; col++)
{
printf(" ");
}
//*第一行1个,后面每行加2个
for (col = 0; col < 2*row+1; col++)
{
printf("*");
}
printf("\n");
}
//下部
for (row = 0; row < top - 1; row++)
{
//空格第一行1个,后面每行加1个
for (col = 0; col < row+1; col++)
{
printf(" ");
}
//*每行减2个
//第一行的上一行,为2*top-1个
//所以这一行的第一行,为(2*top-1)-2个
for (col = 0; col < (2*top-1)-2-row*2; col++)
{
printf("*");
}
printf("\n");
}
return 0;
}
标签:第一行,++,top,打印,菱形,printf,col,row
From: https://blog.51cto.com/u_16509575/9370536