水题,水水更健康。
#include<iostream>
using namespace std;
int a[101][101];
void Show(int x)
{
int i,j,m,n;
memset(a,0,sizeof(a));
i=1;
m=1;
j=2;
n=x;
while(i<=n) a[1][i++]=m++;
while(j<=n) a[j++][n]=m++;
i=n-1;
while(i>=1) a[n][i--]=m++;
j=n-1;
while(j>=2) a[j--][1]=m++;
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
if(a[i][j])
printf("%3d",a[i][j]);
else
printf(" ");
cout<<endl;
}
}
int main()
{
int n;
while(cin>>n &&n)
{
Show(n);
}
return 0;
}原文地址:http://blog.csdn.net/a809146548/article/details/45293137