#include<iostream.h>
void main()
{
int n,i=0,j=0,k=1,q=1;
int a[50][50]={0};
cout<<"Input n<50"<<endl;
cin>>n;
while(1)
{
if(q==1)
{
while(1)
{
a[i][j++]=k++;
if(j>=n||a[i][j]!=0)
{
j--;
k--;
break;
}
}
q++;
}
if(q==2)
{
while(1)
{
a[i++][j]=k++;
if(i>=n||a[i][j]!=0)
{
i--;
k--;
break;
}
}
q++;
}
if(q==3)
{
while(1)
{
a[i][j--]=k++;
if(j<0||a[i][j]!=0)
{
j++;
k--;
break;
}
}
q++;
}
if(q==4)
{
while(1)
{
a[i--][j]=k++;
if(i<0||a[i][j]!=0)
{
i++;
k--;
break;
}
}
q=1;
}
if(k==n*n)
break;
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
cout<<a[i][j]<<" ";
}
cout<<endl;
}
}
输入数字2,则程序输出:
1 2
4 3
输入数字3,则程序输出:
1 2 3
8 9 4
7 6 5
输入数字4, 则程序输出:
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
本文介绍了一个使用C++实现的螺旋填充矩阵算法,该算法能够根据用户输入的整数n生成一个n×n的矩阵,并按螺旋顺序填充1到n²的整数。文章通过具体的程序代码展示了算法的工作原理及实现过程。
4万+

被折叠的 条评论
为什么被折叠?



