有n*n矩阵 按如下格式输出

来源:百度知道 编辑:UC知道 时间:2024/05/16 00:14:18
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9

输入n=5 得你的阵

#include <stdio.h>
void main()
{
int x[20][20]; // 最大 20x20
int ii,jj,n = 6;
int v=1;
int i0,i1,j0,j;

printf("Please enter n, n=4 to 10\n");
scanf("%d",&n);

i0=0; i1 = n -1;
for (j=0;j<=n/2;j++)
{
j0 = j;
for (ii=i0;ii<=i1;ii++) {x[j0][ii]=v; v++;};
for (jj=j0+1;jj<=i1;jj++) {x[jj][i1]=v; v++;};
for (ii=i1-1;ii >=i0;ii--) {x[i1][ii]=v; v++;};
for (jj=i1-1;jj >=i0+1;jj--) {x[jj][i0]=v; v++;};
i0 = i0+1;i1=i1-1;
}
for (jj=0;jj<n;jj++)
{
for (ii=0;ii<n;ii++) printf("%3d ",x[jj][ii]);
printf("\n");
}
}