/*
*
***
*****
*******
*****
***
*
*/
#include <stdio.h>
int main() {
printf("请输入菱形的行数注意行数是基数\n");
int n;
scanf("%d",&n);
/* 分析图形,图形可以看成是从中间分成上下两部分组成,上边可以看一看成是由左边空格,加右边*组成
左右两边是并列关系,统一写在一个for循环里,同理下部分和上部分是一样
*/
//上部分有n/2+1行
for (int i = 1;i<=n/2+1; i++) {
/*
从图可以看出上部分每行空格数是等于上部分总行数(n/2+1)-当前行号i;
*/
for(int j = 1;j<=(n/2+1)-i;j++){
//打印空格
printf(" ");
}
for (int k=1; k<=2*i-1; k++) {
//打印*
printf("*");
}
//每打印一次空格和*换一行
printf("\n");
}
//下部分同理上部分并列关系
for (int i = 1;i<=n/2; i++) {
for(int j = 1;j<=i;j++){
printf(" ");
}
for (int k=(n/2-i)*2+1; k>=1; k--) {
printf("*");
}
printf("\n");
}
return 0;
}