解题思路:找规律,仔细观察每行每列的*和空格输出情况
注意事项:
参考代码:#include
int main()
{
int i=0,j,k=0,n,N[100];
while(scanf("%d",&N[i])!=EOF)
{
i++;
}
int cnt=i;
while(k!=cnt)
{
printf("%d\n",N[k]);
n=(2*N[k]-1);
for(i=1;i<=n;i++)
if(i%2!=0)
{
for(j=1;j<=n;j++)
{
if(i<=(n+1)/2)
{
if((jn-i&&j%2==0))
{
printf(" ");
}
else
{
printf("*");
}
}
else
{
if((j<=n-i&&j%2==0)||(j>=i&&j%2==0))
{
printf(" ");
}
else
{
printf("*");
}
}
}
printf("\n");
}
else
{
for(j=1;j<=n;j++)
{
if(i<=(n+1)/2)
{
if((jn-i&&j%2!=0))
{
printf("*");
}
else
{
printf(" ");
}
}
else
{
if((j<=n-i&&j%2!=0)||(j>=i&&j%2!=0))
{
printf("*");
}
else
{
printf(" ");
}
}
}
printf("\n");
}
k++;
}
return 0;
}