//打印一个n行的菱形
#include<stdio.h>
int main()
{
int i,j;
int n;
//判断是否可以构成菱形
do
{
printf("Enter n=");
scanf("%d",&n);
}while(n%2==0);
for(i=1;i<=n;i++)
{
if(i<=(n+1)/2)//在n行的中间隔断计算上三角
{
for(j=1;j<=(n+1)/2-i;j++)
{
printf(" ");
}
for(j=1;j<=2*i-1;j++)
{
printf("*");
}
}
else//计算下三角
{
for(j=1;j<=i-(n+1)/2;j++)
{
printf(" ");
}
for(j=1;j<=2*n-2*i+1;j++)
{
printf("*");
}
}
printf("\n");
}
return 0;
}
本代码为由书上例题打印梯形自己思考衍生出打印任意菱形。
前面的上三角形比较好弄,下三角形琢磨了好一会(因为没有找到行与“*”数量的关系)
反思:关键在于找行与各行项数的递推关系,否则内循环写不出来,一切都是白搭。