镂空的原理:判断什么时候打印星号,什么时候打印空格
如果把这个图形镂空 成下面这个图形
int i,j;
//外层控制行数和换行
for(i=0;i<5;i++)
{
//内存循环控制列数和星数量
for(j=0;j<=3-i;j++)
{
printf(" ");
}
for(j=0;j<=i*2;j++)
{
if(i==0 || i==4 || j ==0 || j == 2*i) //第一行和最后一行不要镂空,然后就是中间的两边,分别是j=0和j取最大值的时候
printf("*");
else
printf(" ");0
}
printf("\n");
}
return 0;
第二种:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,j;
for(i=0;i<9;i++)
{
for(j=0;j<9;j++)
{
if(i == 0 || i == 8 || j == 0 || j == 8)
{
printf("*");
}
else
printf(" ");
}
printf("\n");
}
第三种效果图:
int main()
{
//上半部分
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<2-i;j++)
{
printf(" ");
}
for(j=0;j<=2+2*i;j++)
{
if(i == 0 || j == 0 || j == 2+2*i)
printf("*");
else
printf(" ");
}
printf("\n");
}
//中间部分
for(i=0;i<3;i++)
{
for(j=0;j<7;j++)
{
if(j == 0 ||j == 6)
printf("*");
else
printf(" ");
}
printf("\n");
}
//下半部分
for(i=0;i<3;i++)
{
for(j=0;j<i;j++)
{
printf(" ");
}
for(j=0;j<=6-2*i;j++)
{
if(i == 2 || j == 0 || j ==6-2*i )
printf("*");
else
printf(" ");
}
printf("\n");
}
return 0;
}
第四种:
int main()
{
int i,j;
//上半部分
for(i=0;i<3;i++)
{
for(j=0;j<2-i;j++)
{
printf(" ");
}
for(j=0;j<=2*i;j++)
{
printf("*");
}
printf("\n");
}
//下半部分
for(i=0;i<7;i++)
{
for(j=0;j<5;j++)
{
if(j == 2)
printf("*");
else
printf(" ");
}
printf("\n");
}
return 0;