螺旋式的输入数
分析:
可以用调用,一圈一圈的写
代码:
#include<bits/stdc++.h>
using namespace std;
int n;
void vp(int a[15][15],int s,int k)
{
int i;
if(s-1!=n*n)
{
for(i=k+1;i<=n-k;i++,s++)
a[k+1][i]=s;
for(i=k+2;i<=n-k;i++,s++)
a[i][n-k]=s;
for(i=n-k-1;i>=k+1;i--,s++)
a[n-k][i]=s;
for(i=n-k-1;i>k+1;i--,s++)
a[i][k+1]=s;
vp(a,s,k+1);}
}
int main()
{
int a[15][15],i,j,t=0,s,m;
while(cin>>m)
{
for(s=0;s<m;s++){
if(t)
cout<<endl;
t=1;
cin>>n;
vp(a,1,0);
for(i=1;i<=n;i++){
for(j=1;j<n;j++)
cout<<a[i][j]<<"\t";
cout<<a[i][n]<<endl;
}
}
}
}
感受:
感觉方法不对,写的不是很简单。。。