打印一个N*N的方阵,N为每边字符的个数( 3〈N〈20 ),要求最外层为“X”,第二层为“Y”,从第三层起每层依次打印数字0,1,2,3,…
例子:当N =5,打印出下面的图形:
X X X X X
X Y Y Y X
X Y 0 Y X
X Y Y Y X
X X X X X
思路:
一、使用x、y作为“坐标轴”,从上到下从左到右依次打印出图形
实现方法就是把x自加,直到x=n的时候清零,然后y+1,这样一直持续到y也等于0
for(;;x++)
{....
if(x==n)
{
if(y==n)
{
return 0;
}
printf("\n");
x=0;
y++;
}
}
二、第一行和最后一行全是x,且每行第一个以及倒数第一个也是x
if((x==1)|(y==1)|(x==n)|(y==n))
三、第二行以及倒数第二行掐头去尾都是y,且其他行第二个和倒数第二个也是y
else if((y==2)|((y+1)==n)|(x==2)|((x+1)==n))
四、剩下的每一行其他的数字就是打印行数-3即可
printf("%d",y-3);
#include<stdio.h>
int main()
{
int n=7;//改这里的n
int x=1, y=1;
for(;;x++)
{
if((x==1)|(y==1)|(x==n)|(y==n))
{
printf("X");
}
else if((y==2)|((y+1)==n)|(x==2)|((x+1)==n))
{
printf("Y");
}
else
{
printf("%d",y-3);
}
if(x==n)
{
if(y==n)
{
return 0;
}
printf("\n");
x=0;
y++;
}
}
}