开始编写程序前,我们需要先找到菱形的规律。
1.菱形的行数k为奇数,除中间一行外上下对称,我们可以将中间行归到上半部分,上半部分行数为k=k/2 1,下半部分为k=k/2。
2.菱形每一行的*数量递增或递减两个。
3.空格数每一行递减(递增)一个,到中间行为0,可知空格数为 k-( )当前行数
得出结论后即可开始编写代码
首先声明变量并让用户输入菱形的行数
int i,j,z,n,k;
printf("请输入菱形的行数:\n");
scanf("%d",&k);
k = k / 2 1;
上半部分的菱形
for(i=1,n=1; i<= k; i )
{
n = 2*i-1;
for(j=k-i; j>0; j--)
{
printf(" ");
}
for(z=0; z< n; z )
{
printf("*");
}
printf("\n");
}
当上半部分编写完成后,我们需要将星号的数量n减少2,因为我们将中间行也归到了上半部分中。
n-=2;
for(i=0; i0; z--)
{
printf("*");
}
printf("\n");
}
下半部分菱形
运行结果
完整代码:
#include
int main()
{
int i,j,z,n,k;
printf("请输入菱形的行数:\n");
scanf("%d",&k);
k = k / 2 1;
for(i=1,n=1; i<= k; i )
{
n = 2*i-1;
for(j=k-i; j>0; j--)
{
printf(" ");
}
for(z=0; z< n; z )
{
printf("*");
}
printf("\n");
}
n-=2;
for(i=0; i0; z--)
{
printf("*");
}
printf("\n");
}
return 0;
}