您的位置:首页 > 其它

打印一个N*N的方阵,N为每边字符的个数( 3〈N〈20 )

2017-12-07 15:18 295 查看
打印一个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

#include <stdio.h>
void main()
{
int flag=0;
int s=0;
int N=0;
int x=0;
while(N<3||N>20)
{
scanf("%d",&N);
}
char a[20]={0};
a[0]=a[N-1]='x';
a[1]=a[N-1-1]='y';
for(x=2;x<=(N-1)/2;x++)
{
a[x]=a[N-1-x]='0'+x-2;
}
int i=0;
int j=0;
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
if(((i+j)==N-1)||(i==j))
{
printf("%c",a[j]);
flag++;
}else if((i+j)<N-1)
{
s=(i<j)?i:j;
printf("
9886
%c",a[s]);
flag++;
}else if((i+j)>N-1)
{
s=(i>j)?i:j;
printf("%c",a[s]);
flag++;
}

if(flag==N)
{
printf("\n");
flag=0;
}

}
}
}


随手写的代码 不是很规整 见谅
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐