回旋矩阵的问题
#include<iostream>#include<iomanip>
using namespace std;
int main()
{
int a[20][20];
int i,j,m,n;
int x1,x2,y1,y2,s;
cin>>n;
m=n*n;
x1=0;x2=n;
y1=0;y2=n;
if(n%2==0)
{
i=0;j=n-1;y2=n-1;s=1;
}
else
{
i=n-1;j=0;y1=1;s=0;
}
while(m>=1)
{
if(s==1)
{
while(i<x2)
{
a[i][j]=m--;
i++;
}
i--;j--;
x2--;
while(j>=y1)
{
a[i][j]=m--;
j--;
}
j++;i--;
y1++;
s=0;
}
else
{
while(i>=x1)
{
a[i][j]=m--;
i--;
}
i++;j++;
y1++;
while(j<y2)
{
a[i][j]=m--;
j++;
}
j--;i++;
y2--;
s=1;
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
cout<<" "<<a[i][j];
cout<<endl;
}
return 0;
}