69,371
社区成员
发帖
与我相关
我的任务
分享
#include<iostream>
# define N 15
using namespace std;
main()
{
int i,j,k,f,p,q,f1,f2,f3,f4;
int n,a[N][N]={0};
cout<<"n=";
cin>>n;
if(n<3||n>N)
exit(0);
p=q=f=f1=f2=f3=f4=0;
for(k=1;k<=n*n;k++)
switch(f)
{
case 0:
for(j=p;j<n-f1;j++)
{a[p][j]=k;k++;}
q=j-1;
p++;
f++;
f%=4;
k--;
f1++;
break;
case 1:
for(i=p;i<n-f2;i++)
{a[i][q]=k;k++;}
p=i-1;
q--;
f++;
f%=4;
k--;
f2++;
break;
case 2:
for(j=q;j>=f3;j--)
{a[p][j]=k;k++;}
q=j+1;
p--;
f++;
f%=4;
k--;
f3++;
break;
case 3:
for(i=p;i>f4;i--)
{a[i][q]=k;k++;}
p=i+1;
q++;
f++;
f%=4;
k--;
f4++;
break;
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{cout<<a[i][j]<<" ";
}
cout<<endl;
}
}