#include <stdio.h>
int get_rhombus(int i, int top)
{
int n = 1;
int o_i = i;
for(o_i; o_i <= (top - 1) / 2; o_i++) //空格个数为 (高度 - 1)/ 2 个
{
printf(" ");
}
for(n; n <= 2 * i - 1; n++) //星星个数为 (2倍的当前高度 - 1)个
{
printf("☆ ");
}
printf("\n");
printf("\n");
return 0;
}
int got_rhombus(int i,int j, int top)
{
int n = 1;
int o_i = i;
for(o_i; o_i - ((top + 1)/2) > 0;o_i--) //空格个数为(高度 - 1)/2 个
{
printf(" ");
}
for(n; n <= (i - j) * 2 - 1 ; n++) //星星个数为(当前高度 - x)- 1个 x为2,4,6,8,10,12
{
printf("☆ ");
}
printf("\n");
printf("\n");
return 0;
}
void drawing_rhombus(int i, int j,int top)
{
for(i; i < top + 1;i++)
{
if(i <= ((top +1) / 2))
{
get_rhombus(i, top); //若在菱形高度中间之前,则用此函数
}
if(i > ((top+1)/2) && i < (top + 1))
{
got_rhombus(i, j, top);//在菱形高度中间之后,则用这个函数
j = j + 2;
}
}
}
int main()
{
int i = 1;
int j = 2;
int top; //菱形竖着长度 必须为单数
scanf("%d", &top);
if(top % 2 == 0) //判断是否为奇数,若为奇数则继续,否则退出
{
printf("应输入奇数!");
return 0;
}
drawing_rhombus(i, j ,top); //打印菱形
return 0;
}