#include<stdio.h>
#include<iostream>
#include<string.h>
using namespace std;
int s[100][100];
int main()
{
int n,a,b,t;
cin>>n;
a=0;
b=n-1;
t=1;
s[a][b]=1;
memset(s,0,sizeof(a));//memset函数的用法一定要记好。++t的作用
while(t<n*n)
{
while(a+1<n && !s[a+1][b])
{
s[++a][b]=++t;
}
while(b-1>=0 && !s[a][b-1] )
{
s[a][--b]=++t;
}
while(a-1>=0 && !s[a-1][b])
{
s[--a][b]=++t;
}
while(b<n && !s[a][b+1])
{
s[a][++b]=++t;
}
}
printf("\n");
for (int i=0;i<n;i++)
{
int c=0;
for(int j=0;j<n;j++)
{
c++;
if (c!=n)
cout<<s[i][j]<<" ";
else
cout<<s[i][j]<<endl;
}
}
return 0;
#include<iostream>
#include<string.h>
using namespace std;
int s[100][100];
int main()
{
int n,a,b,t;
cin>>n;
a=0;
b=n-1;
t=1;
s[a][b]=1;
memset(s,0,sizeof(a));//memset函数的用法一定要记好。++t的作用
while(t<n*n)
{
while(a+1<n && !s[a+1][b])
{
s[++a][b]=++t;
}
while(b-1>=0 && !s[a][b-1] )
{
s[a][--b]=++t;
}
while(a-1>=0 && !s[a-1][b])
{
s[--a][b]=++t;
}
while(b<n && !s[a][b+1])
{
s[a][++b]=++t;
}
}
printf("\n");
for (int i=0;i<n;i++)
{
int c=0;
for(int j=0;j<n;j++)
{
c++;
if (c!=n)
cout<<s[i][j]<<" ";
else
cout<<s[i][j]<<endl;
}
}
return 0;
}