偶然看到很多人在问关于星型打印图案的算法,今天我们就一起学习讨论一下。其实这个问题比较简单的,初级的时候只需要用for循环就可以实现,后期的话学习了坐标就更简单了,闲话少说,上主题:
input a numberprintRectangle2(int n)
{//打印上面的三角形
int i,
j;
for(i=1;i<=n;i++)
{
// 控制星形的行数
for(j=1;j<=n-i;j++)
{
printf("
");
}
for(j=1;j<=2*i-1;j++)
//控制星型的列数
{
if(i==1 || i==n+1 || j==1 || j==2*i-1)
//挖空星型内部区域
{
printf("*");
}else
{
printf("
");
}
}
printf("\n");
}
//中间的长方形
for(i=1;i<2*n;i++)
{
for(j=1;j<2*n;j++)
{
if(i==0 || i==2*n || j==1 || j==2*n-1)
{
printf("*");
}else
{
printf("
");
}
}
printf("\n");
}
//打印下面的三角形
for(i=1;i<=n;i++)
{
for(j=1;j<=i;j++)
{
printf("
");
}
for(j=1;j<=2*(n-i)-1;j++)
{
if(j==1 ||
j==2*(n-i)-1)
{
printf("*");
} else
{
printf("
");
}
}
printf("\n");}}
int main()
{
printf("input a
number:");
int
n;
scanf("%d",&n);
printRectangle2(n);
return 0;
}