问答题 以下是一个5×5阶螺旋方阵。设计一个算法输出该形式的n×n(n<10)阶方阵(顺时针方向旋进)。 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
【正确答案】本题代码实现如下: void fun(int a[MaxLen][MaxLen],int n)//MaxLen是已经定义的常量 { int i,j,k=0,m; if(n%2==0)//m=□n/2 □ m=n/2; else m=n/2+1; for(i=0;i<m;++i) { for(j=i;j<n-i;++j) { ++k; a[i][j]=k; } for(j=i+1;j<n-i;++j) { ++k; a[j][n-i-1]=k; } for(j=n-i-2;j>=i;--j) { ++k; a[n-i-1][j]=k; } for(j=n-i-2;j>=i+1;--j) { ++k; a[j][i]=k; } } }
【答案解析】